Merge Sort · Nhóm: Sắp xếp
Sắp xếp trộn (Merge Sort), nhóm Sắp xếp.
def merge_sort(a, left, right):
if left >= right:
return
mid = (left + right) // 2
merge_sort(a, left, mid)
merge_sort(a, mid + 1, right)
tmp = a[left:right + 1]
i, j, k = 0, mid - left + 1, left
while i <= mid - left and j < len(tmp):
if tmp[i] <= tmp[j]:
a[k] = tmp[i]; i += 1; k += 1
else:
a[k] = tmp[j]; j += 1; k += 1
while i <= mid - left:
a[k] = tmp[i]; i += 1; k += 1
while j < len(tmp):
a[k] = tmp[j]; j += 1; k += 1
Mở trang để xem mô phỏng từng bước và xuất slide bài giảng.