package sorting;
public class MergeSort {
public static void main(String[] args) {
new MergeSort();
}
public MergeSort() {
int[] arr=new int[]{6,1,4,2,3,5,10,2,2,1,6};
System.out.println("Before Sorting...");
printArray(arr);
System.out.println();
mergeSort(arr, 0, arr.length-1);
System.out.println("After Sorting...");
printArray(arr);
}
private void mergeSort(int[] arr, int low, int high) {
if (low < high) {
int middle = low + (high - low) / 2;
mergeSort(arr, low, middle);
mergeSort(arr, middle + 1, high);
merge(arr,low, middle, high);
}
}
private void merge(int arr[], int start, int mid, int end){
int i=start,j=mid+1;
int count=0;
int tmp[]=new int[end-start+1];
while(i<=mid && j<=end){
if(arr[i]<arr[j]){
tmp[count]=arr[i];
i++;
}else{
tmp[count]=arr[j];
j++;
}
count++;
}
while(i<=mid){
tmp[count]=arr[i];
count++;
i++;
}
while(j<=end){
tmp[count]=arr[j];
count++;
j++;
}
for (int k = 0; k < tmp.length; k++) {
arr[start+k]=tmp[k];
}
}
private void printArray(int arr[]){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
Questions on Stack, Queues, Linkedlist, Binary Trees, Sorting, Searching, Graphs etc with solution using Java Language.
Wednesday, 24 December 2014
Merge Sort
Labels:
Sorting
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment