mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 06:07:20 +08:00 
			
		
		
		
	Update merge_sort.md
修改了代码注释使其表述更严谨,如C++中:
for (int k = left; k <= right; k++) {
            // 若“左子数组已全部合并完”,则选取右子数组元素,并且 j++
            if (i > leftEnd)
                nums[k] = tmp[j++];
            // 否则,若“右子数组已全部合并完”或“左子数组元素 <ins> <= </ins> 右子数组元素”,则选取左子数组元素,并且 i++
            else if (j > rightEnd || tmp[i] <= tmp[j])
                nums[k] = tmp[i++];
            // 否则,若<ins>“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”</ins>,则选取右子数组元素,并且 j++
            else
                nums[k] = tmp[j++];
        }
			
			
This commit is contained in:
		@ -81,10 +81,10 @@ comments: true
 | 
			
		||||
            // 若“左子数组已全部合并完”,则选取右子数组元素,并且 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++];
 | 
			
		||||
        }
 | 
			
		||||
@ -125,10 +125,10 @@ comments: true
 | 
			
		||||
            // 若“左子数组已全部合并完”,则选取右子数组元素,并且 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++];
 | 
			
		||||
        }
 | 
			
		||||
@ -170,11 +170,11 @@ comments: true
 | 
			
		||||
            if i > left_end:
 | 
			
		||||
                nums[k] = tmp[j]
 | 
			
		||||
                j += 1
 | 
			
		||||
            # 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
 | 
			
		||||
            # 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
 | 
			
		||||
            elif j > right_end or tmp[i] <= tmp[j]:
 | 
			
		||||
                nums[k] = tmp[i]
 | 
			
		||||
                i += 1
 | 
			
		||||
            # 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
 | 
			
		||||
            # 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
 | 
			
		||||
            else:
 | 
			
		||||
                nums[k] = tmp[j]
 | 
			
		||||
                j += 1
 | 
			
		||||
@ -218,11 +218,11 @@ comments: true
 | 
			
		||||
            if i > left_end {
 | 
			
		||||
                nums[k] = tmp[j]
 | 
			
		||||
                j++
 | 
			
		||||
            // 否则,若“右子数组已全部合并完”或“左子数组元素 < 右子数组元素”,则选取左子数组元素,并且 i++
 | 
			
		||||
            // 否则,若“右子数组已全部合并完”或“左子数组元素 <= 右子数组元素”,则选取左子数组元素,并且 i++
 | 
			
		||||
            } else if j > right_end || tmp[i] <= tmp[j] {
 | 
			
		||||
                nums[k] = tmp[i]
 | 
			
		||||
                i++
 | 
			
		||||
            // 否则,若“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
 | 
			
		||||
            // 否则,若“左右子数组都未全部合并完”且“左子数组元素 > 右子数组元素”,则选取右子数组元素,并且 j++
 | 
			
		||||
            } else {
 | 
			
		||||
                nums[k] = tmp[j]
 | 
			
		||||
                j++
 | 
			
		||||
@ -267,10 +267,10 @@ comments: true
 | 
			
		||||
            // 若“左子数组已全部合并完”,则选取右子数组元素,并且 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++];
 | 
			
		||||
            }
 | 
			
		||||
@ -312,10 +312,10 @@ comments: true
 | 
			
		||||
            // 若“左子数组已全部合并完”,则选取右子数组元素,并且 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++];
 | 
			
		||||
            }
 | 
			
		||||
@ -365,10 +365,10 @@ comments: true
 | 
			
		||||
            // 若“左子数组已全部合并完”,则选取右子数组元素,并且 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++];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user