归并排序

“The Linux philosophy is “Laugh in the face of danger”.Oops.Wrong One. “Do it yourself”. Yes, that”s it.”
Linux的哲学就是“在危险面前放声大笑”,呵呵,不是这句,应该是“一切靠自己,自力更生”才对。

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
public class  {

* sort左边,sort右边,归并
*/
public static void (int[] nums, int l, int h) {
if (l >= h)
return;
int left = l, right = h;
int mid = (left + right) / 2;
MergeSort(nums, left, mid);
MergeSort(nums, mid + 1, right);
Merge(nums, left, mid, right);
}


*左边l-m,右边m+1 - h
*/
private static void Merge (int[] nums, int l, int m, int h) {
int newNums[] = new int[h - l + 1];
int i = l, j = m + 1, k = 0;
while (i <= m && j <= h) {
newNums[k++] = nums[i] < nums[j] ? nums[i++] : nums[j++];
}
while (i <= m)
newNums[k++] = nums[i++];
while (j <= h)
newNums[k++] = nums[j++];
for (int p = 0; p < newNums.length; p++) {
nums[p + l] = newNums[p];
}
}

public static void main (String[] args) {
int []nums = new int[] {4,3,6,2,1,1,1,1,8,5,9,10,0};
MergeSort(nums,0,nums.length-1);
for(int t:nums) {
System.out.print(t+" ");
}
}
}