30/09/2018, 18:23
Cách hoạt động của heap trong thuật toán sắp xếp?
Cho dãy số như sau: 15, 37, 12, 58, 7, 24, 67
Nếu các bước tạo Heap từ dãy số trên.
sao đây mọi người trước giờ chỉ code thôi bây giờ cô bảo phải làm cái này, giờ e phải làm sao đây hic
Bài liên quan
Coi mảng a[] chưa dãy số có chỉ số bắt đầu từ 1…
Số phần tử n = 7 -> j = (int) n/2 = 3.
Ta tạo heap từ phần tử a[j] ngược lên a[1], từ a[4] trở đi là các lá.
vun đống tại a[3] -> 15, 37, 67, 58, 7, 24, 12.
tại a[2] -> 15, 58, 67, 37, 7, 24, 12.
tại a[1] -> 67, 58, 24, 37, 7, 15, 12. (vì trong các con của a[3] có a[6] = 24 > a[1] = 15)
Heap : 67, 58, 24, 37, 7, 15, 12.
Update thêm cái Tree Structure cho dễ hiểu.
Để hiểu rõ về heap sort thì bạn làm theo cấu trúc cây (Tree Structure) sẽ dễ hiểu hơn là đọc công thức, hoặc xem code.