mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-26 22:56:28 +08:00
commit
5ea660a2da
8 changed files with 28 additions and 28 deletions
|
@ -25,10 +25,10 @@ void merge(vector<int>& nums, int left, int mid, int right) {
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd)
|
if (i > leftEnd)
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
else if (j > rightEnd || tmp[i] <= tmp[j])
|
else if (j > rightEnd || tmp[i] <= tmp[j])
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else
|
else
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,10 +31,10 @@ namespace hello_algo.chapter_sorting
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd)
|
if (i > leftEnd)
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
else if (j > rightEnd || tmp[i] <= tmp[j])
|
else if (j > rightEnd || tmp[i] <= tmp[j])
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else
|
else
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,11 +25,11 @@ func merge(nums []int, left, mid, right int) {
|
||||||
if i > left_end {
|
if i > left_end {
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j++
|
j++
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
} else if j > right_end || tmp[i] <= tmp[j] {
|
} else if j > right_end || tmp[i] <= tmp[j] {
|
||||||
nums[k] = tmp[i]
|
nums[k] = tmp[i]
|
||||||
i++
|
i++
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
} else {
|
} else {
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j++
|
j++
|
||||||
|
|
|
@ -28,10 +28,10 @@ public class merge_sort {
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd)
|
if (i > leftEnd)
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
else if (j > rightEnd || tmp[i] <= tmp[j])
|
else if (j > rightEnd || tmp[i] <= tmp[j])
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else
|
else
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,10 +23,10 @@ function merge(nums, left, mid, right) {
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd) {
|
if (i > leftEnd) {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
} else {
|
} else {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,11 +28,11 @@ def merge(nums, left, mid, right):
|
||||||
if i > left_end:
|
if i > left_end:
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j += 1
|
j += 1
|
||||||
# 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
# 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
elif j > right_end or tmp[i] <= tmp[j]:
|
elif j > right_end or tmp[i] <= tmp[j]:
|
||||||
nums[k] = tmp[i]
|
nums[k] = tmp[i]
|
||||||
i += 1
|
i += 1
|
||||||
# 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
# 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else:
|
else:
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j += 1
|
j += 1
|
||||||
|
|
|
@ -23,10 +23,10 @@ function merge(nums: number[], left: number, mid: number, right: number): void {
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd) {
|
if (i > leftEnd) {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
} else {
|
} else {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,10 +81,10 @@ comments: true
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd)
|
if (i > leftEnd)
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
else if (j > rightEnd || tmp[i] <= tmp[j])
|
else if (j > rightEnd || tmp[i] <= tmp[j])
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else
|
else
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
@ -125,10 +125,10 @@ comments: true
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd)
|
if (i > leftEnd)
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
else if (j > rightEnd || tmp[i] <= tmp[j])
|
else if (j > rightEnd || tmp[i] <= tmp[j])
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else
|
else
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
@ -170,11 +170,11 @@ comments: true
|
||||||
if i > left_end:
|
if i > left_end:
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j += 1
|
j += 1
|
||||||
# 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
# 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
elif j > right_end or tmp[i] <= tmp[j]:
|
elif j > right_end or tmp[i] <= tmp[j]:
|
||||||
nums[k] = tmp[i]
|
nums[k] = tmp[i]
|
||||||
i += 1
|
i += 1
|
||||||
# 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
# 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else:
|
else:
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j += 1
|
j += 1
|
||||||
|
@ -218,11 +218,11 @@ comments: true
|
||||||
if i > left_end {
|
if i > left_end {
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j++
|
j++
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
} else if j > right_end || tmp[i] <= tmp[j] {
|
} else if j > right_end || tmp[i] <= tmp[j] {
|
||||||
nums[k] = tmp[i]
|
nums[k] = tmp[i]
|
||||||
i++
|
i++
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
} else {
|
} else {
|
||||||
nums[k] = tmp[j]
|
nums[k] = tmp[j]
|
||||||
j++
|
j++
|
||||||
|
@ -267,10 +267,10 @@ comments: true
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd) {
|
if (i > leftEnd) {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
} else {
|
} else {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
@ -312,10 +312,10 @@ comments: true
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd) {
|
if (i > leftEnd) {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
} else if (j > rightEnd || tmp[i] <= tmp[j]) {
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
} else {
|
} else {
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
@ -365,10 +365,10 @@ comments: true
|
||||||
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
// 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
|
||||||
if (i > leftEnd)
|
if (i > leftEnd)
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
// 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
|
// 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
|
||||||
else if (j > rightEnd || tmp[i] <= tmp[j])
|
else if (j > rightEnd || tmp[i] <= tmp[j])
|
||||||
nums[k] = tmp[i++];
|
nums[k] = tmp[i++];
|
||||||
// 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
// 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
|
||||||
else
|
else
|
||||||
nums[k] = tmp[j++];
|
nums[k] = tmp[j++];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue