Skip to content

Commit 49e9b63

Browse files
committed
优化mergesort 合并剩余元素使用 extend
1 parent b217b8b commit 49e9b63

File tree

2 files changed

+9
-14
lines changed

2 files changed

+9
-14
lines changed

docs/13_高级排序算法/merge_sort.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,10 @@ def merge_sorted_list(sorted_a, sorted_b):
7070
b += 1
7171

7272
# 最后别忘记把多余的都放到有序数组里
73-
while a < length_a:
74-
new_sorted_seq.append(sorted_a[a])
75-
a += 1
76-
77-
while b < length_b:
78-
new_sorted_seq.append(sorted_b[b])
79-
b += 1
73+
if a < length_a:
74+
new_sorted_seq.extend(sorted_a[a:])
75+
else:
76+
new_sorted_seq.extend(sorted_b[b:])
8077

8178
return new_sorted_seq
8279
```

docs/13_高级排序算法/merge_sort.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,11 @@ def merge_sorted_list(sorted_a, sorted_b):
3232
new_sorted_seq.append(sorted_b[b])
3333
b += 1
3434

35-
while a < length_a:
36-
new_sorted_seq.append(sorted_a[a])
37-
a += 1
38-
39-
while b < length_b:
40-
new_sorted_seq.append(sorted_b[b])
41-
b += 1
35+
# 如果 a或b 中还有剩余元素,需要放到最后
36+
if a < length_a:
37+
new_sorted_seq.extend(sorted_a[a:])
38+
else:
39+
new_sorted_seq.extend(sorted_b[b:])
4240

4341
return new_sorted_seq
4442

0 commit comments

Comments
 (0)