public void mergeSort(int[] nums, int l, int r, int[] temp) {
if (l + 1 >= r) {
return;
}
int m = l + (r - l) / 2;
mergeSort(nums, l, m, temp);
mergeSort(nums, m, r, temp);
int p = l, q = m, i = l;
while (p < m || q < r) {
if (q >= r || (p < m && nums[p] <= nums[q])) {
temp[i++] = nums[p++];
} else {
temp[i++] = nums[q++];
}
}
for (i = l; i < r; i++) {
nums[i] = temp[i];
}
}
来手写一个归并排序(Java版)
最新推荐文章于 2024-10-01 23:05:47 发布