|
|
|
@ -23,10 +23,10 @@ function merge(nums: number[], left: number, mid: number, right: number): void {
|
|
|
|
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
|
|
|
|
if (i > leftEnd) {
|
|
|
|
|
nums[k] = tmp[j++];
|
|
|
|
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
|
|
|
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
|
|
|
|
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
|
|
|
|
nums[k] = tmp[i++];
|
|
|
|
|
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
|
|
|
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
|
|
|
|
} else {
|
|
|
|
|
nums[k] = tmp[j++];
|
|
|
|
|
}
|
|
|
|
|