Heap Sort
bài viết này tôi nói về cách thức hoạt động của thuật toán Heap Sort. I. Khái niệm 1. Định nghĩa Heap – Định nghĩa Heap sơ khởi: Heap là 1 cây nhị phân đầy đủ. + vd1: – Mỗi node trong Heap chứa 1 giá trị có thể so sánh với giá trị của node khác 2. Tính chất Heap + Max Heap: Giá trị của mỗi node >= giá trị của các node con nó => Node lớn nhất là node gốc + Min Heap: Giá trị của mỗi node <= giá trị của các node con nó => Node nhỏ nhất là node gốc + vd3: 3. Biểu diễn Heap bằng mảng – Thứ tự lưu trữ trên mảng được thực hiện từ trái => phải – Nếu ta biết được chỉ số của 1 phần tử trên mảng, ta sẽ dễ dàng xác định được chỉ số của node cha và các node con của nó. – Node gốc ở chỉ số 0 – Node cha của node i có chỉ số (i – 1)/2 – Các node con của node i (nếu có) có chỉ số [2i + 1] và [2i + 2] – Node cuối cùng có con trong 1 Heap có n phần tử là: [n/2 – 1] 4. Thao tác điều chỉnh 1 phần tử (Heapify) 4.1/ Chạy từng bước (Debug) – Tôi sẽ tiến hành Heapify ...