Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a03cb21

Browse files
committed
Update 05.Array-Merge-Sort.md
1 parent 9a3f034 commit a03cb21

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

‎Contents/01.Array/02.Array-Sort/05.Array-Merge-Sort.md

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,40 +28,44 @@
2828

2929
```python
3030
class Solution:
31-
def merge(self, left_arr, right_arr): # 合并过程
32-
arr = []
31+
# 合并过程
32+
def merge(self, left_nums: [int], right_nums: [int]):
33+
nums = []
3334
left_i, right_i = 0, 0
34-
while left_i < len(left_arr) and right_i < len(right_arr):
35+
while left_i < len(left_nums) and right_i < len(right_nums):
3536
# 将两个有序子数组中较小元素依次插入到结果数组中
36-
if left_arr[left_i] < right_arr[right_i]:
37-
arr.append(left_arr[left_i])
37+
if left_nums[left_i] < right_nums[right_i]:
38+
nums.append(left_nums[left_i])
3839
left_i += 1
3940
else:
40-
arr.append(right_arr[right_i])
41+
nums.append(right_nums[right_i])
4142
right_i += 1
4243

43-
while left_i <len(left_arr):
44-
# 如果左子数组有剩余元素,则将其插入到结果数组中
45-
arr.append(left_arr[left_i])
44+
# 如果左子数组有剩余元素,则将其插入到结果数组中
45+
while left_i <len(left_nums):
46+
nums.append(left_nums[left_i])
4647
left_i += 1
47-
48-
while right_i <len(right_arr):
49-
# 如果右子数组有剩余元素,则将其插入到结果数组中
50-
arr.append(right_arr[right_i])
48+
49+
# 如果右子数组有剩余元素,则将其插入到结果数组中
50+
while right_i <len(right_nums):
51+
nums.append(right_nums[right_i])
5152
right_i += 1
5253

53-
return arr # 返回合并后的结果数组
54+
# 返回合并后的结果数组
55+
return nums
5456

55-
def mergeSort(self, arr): # 分解过程
56-
if len(arr) <= 1: # 数组元素个数小于等于 1 时,直接返回原数组
57-
return arr
57+
# 分解过程
58+
def mergeSort(self, nums: [int]) -> [int]:
59+
# 数组元素个数小于等于 1 时,直接返回原数组
60+
if len(nums) <= 1:
61+
return nums
5862

59-
mid = len(arr) // 2 # 将数组从中间位置分为左右两个数组
60-
left_arr = self.mergeSort(arr[0: mid]) # 递归将左子数组进行分解和排序
61-
right_arr = self.mergeSort(arr[mid:]) # 递归将右子数组进行分解和排序
62-
return self.merge(left_arr, right_arr) # 把当前数组组中有序子数组逐层向上,进行两两合并
63+
mid = len(nums) // 2 # 将数组从中间位置分为左右两个数组
64+
left_nums = self.mergeSort(nums[0: mid]) # 递归将左子数组进行分解和排序
65+
right_nums = self.mergeSort(nums[mid:]) # 递归将右子数组进行分解和排序
66+
return self.merge(left_nums, right_nums) # 把当前数组组中有序子数组逐层向上,进行两两合并
6367

64-
def sortArray(self, nums: List[int]) -> List[int]:
68+
def sortArray(self, nums: [int]) -> [int]:
6569
return self.mergeSort(nums)
6670
```
6771

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /