Skip to content

Instantly share code, notes, and snippets.

@vikashvverma
Created April 8, 2013 14:33
Show Gist options
  • Save vikashvverma/5337235 to your computer and use it in GitHub Desktop.
Save vikashvverma/5337235 to your computer and use it in GitHub Desktop.
Merge Sort program in JAVA... :D
/**
*
* @author VIK VIKKU VIKASHVVERMA VIKASH
* @since April 8, 2013
* @Website: http://vikash-thiswillgoaway.blogspot.com
*
*/
public class MergeSort {
void mergeSort(int[] a, int begin, int end) {
if (begin < end) {
int mid = (begin + end) / 2;
mergeSort(a, begin, mid);
mergeSort(a, mid + 1, end);
merge(a, begin, mid, end);
}
}
void merge(int[] array, int left, int mid, int right) {
/*We need a Temporary array to store the new sorted part*/
int[] tempArray = new int[right - left + 1];
int pos = 0, lpos = left, rpos = mid + 1;
while (lpos <= mid && rpos <= right) {
if (array[lpos] < array[rpos]) {
tempArray[pos] = array[lpos];
pos++;
lpos++;
} else {
tempArray[pos] = array[rpos];
pos++;
rpos++;
}
}
while (lpos <= mid) {
tempArray[pos++] = array[lpos++];
}
while (rpos <= right) {
tempArray[pos++] = array[rpos++];
}
int iter;
/* Copy back the sorted array to the original array */
for (iter = 0; iter < pos; iter++) {
array[iter + left] = tempArray[iter];
}
return;
}
public static void main(String[] args) {
int[] a = {2, 3, 5, 1, 9, 3, 7};
MergeSort sort = new MergeSort();
sort.mergeSort(a, 0, a.length - 1);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment