- Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathMergeSort.java
44 lines (38 loc) · 1.28 KB
/
MergeSort.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
packageSorting.MergeSort;
publicclassMergeSort {
publicvoidmerge(int[] A, intleft, intmiddle, intright){
int[] leftTempArray = newint[middle - left + 2];
int[] rightTempArray = newint[right - middle + 1];
for (inti = 0; i <= middle - left; i++) {
leftTempArray[i] = A[left + i];
}
for (inti = 0; i < right - middle; i++) {
rightTempArray[i] = A[middle + 1 + i];
}
leftTempArray[middle - left + 1] = Integer.MAX_VALUE;
rightTempArray[right - middle] = Integer.MAX_VALUE;
inti = 0, j = 0;
for (intk = left; k <= right; k++) {
if (leftTempArray[i] < rightTempArray[j]) {
A[k] = leftTempArray[i];
i++;
} else {
A[k] = rightTempArray[j];
j++;
}
}
}
publicvoidmergeSort(int[] Array, intleft, intright){
if (right > left) {
intm = (left + right) / 2;
mergeSort(Array, left, m);
mergeSort(Array, m + 1, right);
merge(Array, left, m, right);
}
}
publicstaticvoidprintArray(int []array) {
for (inti = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}