public class MergeSort{
public static void main(String... arg){
int[] arr= new int[]{20,12,34,1,56,0,109,76};
MergeSort m = new MergeSort();
arr = m.mergeSort(arr);
for(int i : arr)
System.out.println(i);
}
//method to implement merge sort -- Recursive approach
public int[] mergeSort(int[] arr){
int n = arr.length;
if(n < 2) return arr;
int mid = n/2;
int[] left = new int[mid];
int[] right = new int[n-mid];
for(int i=0 ; i<mid ; i++)
left[i] = arr[i];
for(int i=mid ; i<n ; i++)
right[i-mid] = arr[i];
mergeSort(left);
mergeSort(right);
arr = merge(left,right,arr);
return arr;
}
//method to merge arrays
public int[] merge(int[] left, int[] right, int[] arr){
int i=0,j=0,k=0;
while(i < left.length && j < right.length)
if(left[i] <= right[j])
arr[k++] = left[i++];
else
arr[k++] = right[j++];
while(i < left.length)
arr[k++] = left[i++];
while(j < right.length)
arr[k++] = right[j++];
return arr;
}
}
Thursday, December 29, 2016
Merge Sort
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment