博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

。。。归并排序。。。

public void mergeSort(int[] array, int low, int high) {
int mid = low + (high - low) / 2;
if (low < high) {
mergeSort(array, low, mid);
mergeSort(array, mid + 1, high);
merge(array, low, mid, high);
}
}

private void merge(int[] array, int low, int mid, int high) {
int[] temp = new int[high - low + 1];
int k = 0, i = low, j = mid + 1;
while (i <= mid && j <= high) {
if (array[i] <= array[j]) {
temp[k++] = array[i++];
} else {
temp[k++] = array[j++];
}
}
while (i <= mid) {
temp[k++] = array[i++];
}
while (j <= high) {
temp[k++] = array[j++];
}
for (int index = 0; index < temp.length; index++) {
array[low + index] = temp[index];
}
}
posted @ 2019-03-17 16:10  影梦  阅读(165)  评论(0编辑  收藏  举报