归并排序搁浅了....
今天刚刚倒出来时间想研究一下归并排序,结果看书之后搁浅了,难过。
public static void merge(int a[], int lo, int mid, int hi) { int []aux = new int[100]; int i = lo, j = mid + 1; for(int k = lo; k <= hi; k++) { aux[k] = a[k]; } for(int k = lo; k <= hi; k++) { if(i > mid) a[k] = aux[j++]; else if(j > hi) a[k] = aux[i++]; else if(aux[j] < aux[i]) a[k] = aux[j++]; else a[k] = aux[i++]; } }
不是很明白,为什么在归并时要进行这四个判断,第一个判断,要把j的下一个给第一个???????
下面的也是很不理解了,菜鸟见解,会继续进行研究的。
浙公网安备 33010602011771号