Mô phỏng thuật toán Sắp xếp trộn

Merge Sort · Nhóm: Sắp xếp

Sắp xếp trộn (Merge Sort), nhóm Sắp xếp.

Mã Python

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.