eng
competition

Text Practice Mode

Speed Coding (Java)

created Nov 9th 2015, 07:37 by DavidTheDev


2


Rating

210 words
13 completed
00:00
package com.java2novice.sorting;
 
import static java.lang.System.out;
import java.util.Scanner;
import java.util.Arrays;
import java.io.*;
import static java.lang.Math.abs;
 
public class MyMergeSort {
      
    private int[] array;
    private int[] tempMergArr;
    private int length;
  
    public static void main(String a[]){
          
        int[] inputArr = {45,23,11,89,77,98,4,28,65,43};
        MyMergeSort mms = new MyMergeSort();
        mms.sort(inputArr);
        for(int i:inputArr){
            System.out.print(i);
            System.out.print(" ");
        }
    }
      
    public void sort(int inputArr[]) {
        this.array = inputArr;
        this.length = inputArr.length;
        this.tempMergArr = new int[length];
        doMergeSort(0, length - 1);
    }
  
    private void doMergeSort(int lowerIndex, int higherIndex) {
          
        if (lowerIndex < higherIndex) {
            int middle = lowerIndex + (higherIndex - lowerIndex) / 2;
            // Below step sorts the left side of the array
            doMergeSort(lowerIndex, middle);
            // Below step sorts the right side of the array
            doMergeSort(middle + 1, higherIndex);
            // Now merge both sides
            mergeParts(lowerIndex, middle, higherIndex);
        }
    }
  
    private void mergeParts(int lowerIndex, int middle, int higherIndex) {
  
        for (int i = lowerIndex; i <= higherIndex; i++) {
            tempMergArr[i] = array[i];
        }
        int i = lowerIndex;
        int j = middle + 1;
        int k = lowerIndex;
        while (i <= middle && j <= higherIndex) {
            if (tempMergArr[i] <= tempMergArr[j]) {
                array[k] = tempMergArr[i];
                i++;
            } else {
                array[k] = tempMergArr[j];
                j++;
            }
            k++;
        }
        while (i <= middle) {
            array[k] = tempMergArr[i];
            k++;
            i++;
        }
  
    }
}
- See more at: http://www.java2novice.com/java-sorting-algorithms/merge-sort/#sthash.UpNdBxps.dpuf

saving score / loading statistics ...