Về Chương 6
Heap Sort Mountain
HEAP SORT MOUNTAIN ĐỈNH NÚI VUN ĐỐNGCây nhị phân hoàn chỉnh · In-place · O(n log n)
Mô Hình Đống (Max-Heap)
[0]4
[1]1
[2]3
[3]2
[4]16
[5]9
[6]10
[7]14
[8]8
[9]7
Lưu Trữ Mảng (In-place Array)
4
[0]
1
[1]
3
[2]
2
[3]
16
[4]
9
[5]
10
[6]
14
[7]
8
[8]
7
[9]
📋 Mã Giả
HeapSort(arr, n):
// 1. Build Max-Heap
for i = n/2 - 1 down to 0:
siftDown(arr, n, i)
siftDown(arr, n, i):
largest = i; left = 2i+1; right = 2i+2
if left < n && arr[left] > arr[largest]: largest = left
if right < n && arr[right] > arr[largest]: largest = right
if largest != i:
swap(arr[i], arr[largest])
siftDown(arr, n, largest)
// 2. Extract Max
for i = n-1 down to 1:
swap(arr[0], arr[i])
siftDown(arr, i, 0) // heap limit = i
Thông Số Runtime
Chưa bắt đầu
📊 Phân Tích
🏆 Tốt nhất: O(n log n)
📊 Trung bình: O(n log n)
🔻 Xấu nhất: O(n log n)
💾 Bộ nhớ: O(1) (In-place)
🔀 Ổn định: Không