mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 22:28:40 +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++
 | 
					            // 若“左子数组已全部合并完”,则选取右子数组元素,并且 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++];
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user