You are on page 1of 12

BUỔI 7: Searching & Sorting HeapSort

(p2 cs update ngay 24-04)


Câu 1. Ý tưởng thuật toán Heap Sort
Bước 1: Sử dụng BUILD-HEAP để tạo dãy Heap cho dãy A[0..n-
1] với n là chiều dài của dãy.

Bước 2: Sau đó thực hiện đưa A[0] về cuối dãy bằng cách hoán vị
với phần tử cuối cùng của dãy heap đang xét. Xét dãy heap mà đã
loại bỏ phần tử cuối cùng. Tuy nhiên phần tử gốc A[0] của dãy
heap hiện tại sẽ không còn giữ tính chất heap. Vì vậy ta cần
HEAPIFY lại phần tử A[0] để đưa dãy hiện tại về dãy có tính chất
heap. Thực hiện lặp lại các thao tác ở bước 2 trên cho tới khi dãy
heap còn 1 phần tử.

Câu 2. C

Câu 3. A

Câu 4. Chạy tay từng bước thuật toán Heap Sort cho 3 vd.
a. 4, 2, 13, 21, 16, 9, 10, 4, 8, 17 (Sắp xếp tăng dần)
4

2 13

21 16 9 10

4
8 17

Áp dụng thuật toán Heap Sort cho từng bước (đưa về Max Heap xong swap)
Bước 1: 4

17 10

16 13 4 2

9 8 21

Bước 2: 4

16
10
6

13 8 4 2

9 17 21
Bước 3: 4

13 9

10 8 4 2

16
17 21

Bước 4: 2

10 8

9 4 4 13

16 17 21

Bước 5: 2

9 8

4 4 10 13

16 17 21

Bước 6: 2

8 4

4 9 10 13

16
17 21

Bước 7: 2

4 4

8 9 10 13

16 17 21

Bước 8: 2

4 4

8 9 10 13

16 17 21

Bước 9: 2

4 4

8 9 10 13

16
17 21

Kết quả:
2 4 4 8 9 10 13 16 17 21

b. 23, 17, 14, 6, 13, 10, 1, 5, 7, 12 (Sắp xếp giảm dần)


23

17 14

6 13 10 1

5 7 12

Áp dụng thuật toán Heap Sort cho từng bước (đưa về Min Heap xong swap)

Bước 1: 23

6 5

7 13 10 14

12 17 1
Bước 2: 23

7 6

13 12 14 10

17 5 1

Bước 3: 17

7 12

10 13 23 14

6 5 1

Bước 4: 14

10 12

17 13 23 7

6
5 1

Bước 5: 17

12 14

23 13 10 7

6 5 1

Bước 6: 23

14 13

17 12 10 7

6 5 1

Bước 7: 23

17 14

13 12 10 7

6
5 1

Bước 8: 23

17 14

13 12 10 7

6 5 1

Bước 9: 23

17 14

13 12 10 7

6 5 1

Kết quả:
23 17 14 13 12 10 7 6 5 1

c. 5, 13, 2, 25, 7, 17, 20, 8, 4 (Sắp xếp giảm dần)


5

13 2
25 7 17 20

8 4

Áp dụng thuật toán Heap Sort cho từng bước (đưa về Min Heap xong swap)

Bước 1: 25

4 7

5 8 17 20

13 2

Bước 2: 25

5 7

8 13 17 20
4 2

Bước 3: 25

8 7

13 20 17 5

4 2

Bước 4: 25

8 13

17 20 7 5

4 2
Bước 5: 25

17 13

20 8 7 5

4
2

Bước 6: 25

17 20

13 8 7 5

4 2

Bước 7: 25

20 17

13 8 7 5

4 2

Bước 8: 25

20 17

13 8 7 5

4
2

Kết quả:
25 20 17 13 8 7 5 4 2

ĐỘ PHỨC TẠP
Trường hợp Độ phức tạp
Tốt nhất nlo g 2 n

Trung bình nlo g 2 n

Xấu nhất nlo g 2 n

You might also like