Thư viện python max heap

Để làm quen với kiểu dữ liệu Heap, chúng ta có thể biểu diễn kiểu dữ liệu Heap theo một cây nhị phân. Ta có thể biểu diễn theo hai kiểu như sau

Kiểu 1 [Max-Heap]. Các nút cha luôn có giá trị lớn hơn các nút con

Kiểu 2 [Min-Heap]. Các nút cha luôn có giá trị nhỏ hơn các nút con

Kiểu biểu diễn thứ hai, quan sát cây nhị phân với kiểu dữ liệu Heap, ta có một số đặc điểm như sau

  • Giá trị nhỏ nhất trong cây là 10, được gọi là giá trị gốc
  • Các nút cha luôn có giá trị nhỏ hơn các nút con
  • If sắp xếp theo thứ tự từ trên xuống dưới, từ trái sang phải thì ta có dãy giá trị [10, 14, 19, 26, 31, 42, 27, 44, 35, 33] [đặt tên là đống, với phần . Khi đó, tại heap[i], chỉ số của phần tử con bên trái tương ứng là heap[2i+1], phần tử con bên trái phải là heap[2i+2]. Tương ta cũng chỉ có phần tử ứng dụng của heap[i] is heap[[i-1]/2]. [Lưu ý ở trên tương ứng với phần tử đầu tiên mang số 0, nếu coi phần tử đầu tiên chỉ là số 1 thì hai phần tử con và phần tử cha của heap[i] lần cuối cùng. đống[2i], đống[2i+1], đống[i/2]]

2. Cài đặt

Ví dụ về cài đặt Min-Heap

void min_heap[int A[], int i] {
// Chỉ số của phần tử nhỏ nhất trong bộ ba: nút hiện tại, nút con bên trái, và nút con bên phải của nó
    int smallest;
    int left = 2 * i; // Vị trí của nút con bên trái
    int right = 2 * i + 1; // Vị trí của nút con bên phải
    if [left 

Chủ Đề