Mô phỏng thuật toán Sắp xếp vun đống

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

Sắp xếp vun đống (Heap Sort), nhóm Sắp xếp.

Mã Python

def heap_sort(a):
    n = len(a)
    for i in range(n // 2 - 1, -1, -1):
        sift_down(a, n, i)
    for i in range(n - 1, 0, -1):
        a[0], a[i] = a[i], a[0]
        sift_down(a, i, 0)
    return a
def sift_down(a, n, parent):
    while True:
        child = 2 * parent + 1
        if child + 1 < n and a[child + 1] > a[child]:
            child += 1
        if child < n and a[child] > a[parent]:
            a[parent], a[child] = a[child], a[parent]
            parent = child
        else:
            break

Mở trang để xem mô phỏng từng bước và xuất slide bài giảng.