Professional Documents
Culture Documents
Heap
Heap
2
Bài toán mở đầu
• Ban đầu dãy rỗng. Thực hiện thao tác trên và thông báo
kết quả của từng thao tác loại 2 .
3
Bài toán mở đầu
a[n++] = x;
Độ phức tạp
4
Bài toán mở đầu
5
Bài toán mở đầu
Độ phức tạp
6
Bài toán mở đầu
Độ phức tạp
7
Bài toán mở đầu
• Đánh giá
Độ phức tạp mỗi thao tác với là số phần tử hiện tại của dãy
Độ phức tạp cho thao tác cỡ
8
Nội dung
9
Khái niệm Heap
10
Khái niệm Heap
11
Khái niệm Heap
𝑎𝑖
𝑎2∗𝑖+1 𝑎2∗𝑖+2
19 7 10 4 2 1 6 3
0 1 2 3 4 5 6 7
12
Khái niệm Heap
• Dãy được gọi là heap (heap max hoặc heap min) nếu
thỏa
: heap max
: heap min
13
Khái niệm Heap
3
4 6
8 5 11 9
10
14
Khái niệm Heap
19
7 10
4 2 1 6
3
15
Khái niệm Heap
19
7 10
4 2 1 6
3
16
Nội dung
17
Các thao tác trên heap
6
0
4 10
1 2
9 18 2 11
3 4 5 6
7
7
18
Các thao tác trên heap
19
Các thao tác trên heap
20
Các thao tác trên heap
18
0
9 11
1 2
7 4 2 10
3 4 5 6
6 25
7 8
21
Các thao tác trên heap
22
Các thao tác trên heap
25
0
18 11
1 2
9 4 2 10
3 4 5 6
6 7
7 8
23
Các thao tác trên heap
24
Các thao tác trên heap
25
Các thao tác trên heap
26
Nội dung
27
Heap và priority_queue
28
Heap và priority_queue
29
Heap và priority_queue
30
Nội dung
31
Kết luận
• Heap được ứng dụng xử lý hiệu quả các truy vấn tìm
phần tử nhỏ nhất/lớn nhất trên dãy biến động
Thêm phần tử vào heap:
Hủy phần tử đầu ra khỏi heap:
Lấy giá trị phần tử đầu heap:
32