Merge pull request #190 from GN-Yu/patch-1

Suggestion on merge_sort.md
This commit is contained in:
Yudong Jin 2022-12-31 02:25:04 +08:00 committed by GitHub
commit 5ea660a2da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 28 additions and 28 deletions

View file

@ -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++];
} }

View file

@ -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++];
} }

View file

@ -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++

View file

@ -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++];
} }

View file

@ -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++];
} }

View file

@ -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

View file

@ -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++];
} }

View file

@ -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++];
} }