SlideShare a Scribd company logo
1 of 12
Download to read offline
Nguyễn Ngọc Dũng - HCMUS



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

+ vd2:




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/    Page 1
Nguyễn Ngọc Dũng - HCMUS




+vd3:




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/   Page 2
Nguyễn Ngọc Dũng - HCMUS


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 theo Max Heap. Tức là node con của node
đang xét mà lớn hơn node cha thì tiến hành đổi chỗ



    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/    Page 3
Nguyễn Ngọc Dũng - HCMUS




4.2/ Cài đặt




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/   Page 4
Nguyễn Ngọc Dũng - HCMUS




5. Xây dụng Heap (BuildHeap)
5.1/ Khái niệm
- Tất cả các phần tử trên mảng có chỉ số [n/2] đến [n - 1] đều là
node lá
- Mỗi node lá được xem là Heap có duy nhất 1 phần tử
- Thực hiện thao tác Heapify trên các phần tử có chỉ số từ [n/2 - 1]
=> 0 ta sẽ tạo được 1 Heap có n phần tử
5.2/ Cài đặt




5.3/ Xây dựng mảng sau thành Heap


    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/    Page 5
Nguyễn Ngọc Dũng - HCMUS


- Ở mục này tôi sẽ tiến hành chay từng bước hàm BuildHeap
- Lưu ý: Tôi sẽ Build Heap trên mảng với Max Heap
- Ví dụ:




- Theo hàm BuildHeap khởi tạo biến i = n/2 – 1
+ Ta thấy mảng trên có 10 phần tử
=> i = 10/2 – 1 = 4
=> Vậy ta sẽ bắt đầu ở vị trí 4 của mảng trên




- Ta thấy vị trí 4 có giá trị là 7 và con của nó là 9
+ Ta nhận thấy 9 > 4 => Ta đổi chỗ 2 thằng này




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/   Page 6
Nguyễn Ngọc Dũng - HCMUS




+ Sau khi hoán vị xong ta giảm i (i--). Theo hàm BuildHeaps




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/     Page 7
Nguyễn Ngọc Dũng - HCMUS




https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/   Page 8
Nguyễn Ngọc Dũng - HCMUS




+ Sau khi xây dụng Heap xong => Ta nhận thấy còn 1 vị trí ko tuân
theo quy luật Max Heap: 5 và con của 5 là 15 và 1: 15 > 5 và 15 > 1
=> Đổi chỗ 15 và 1




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/    Page 9
Nguyễn Ngọc Dũng - HCMUS




=> Kết quả của mảng:




6. Thuật toán HeapSort
6.1) Tư tưởng thuật toán HeapSort
-B1: Xây dựng Heap
=> Sử dụng thao tác Heapify để chuyển đổi mảng bình thường thành
Heap

-B2: Sắp xếp
+ Hoán vị phần tử cuối cùng của Heap với phần tử đầu tiên của Heap
+ Loại bỏ phần tử cuối cùng
+ Thực hiện thao tác Heapify để điều chỉnh phần tử đầu tiên

6.2) Cài đặt HeapSort




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/   Page 10
Nguyễn Ngọc Dũng - HCMUS




7. Chứng minh số node của Heap với chiều cao là h
+ Tham khảo cách chứng mình số node của
BST:http://ilaptrinh.wordpress.com/2012/12/31/chung-minh-so-node-
cay-nhi-phan-tim-kiem-bst/




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/   Page 11
Nguyễn Ngọc Dũng - HCMUS




8. Ưu điểm & Khuyết điểm




    https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/   Page 12

More Related Content

What's hot

Ctdl c4-cay
Ctdl c4-cayCtdl c4-cay
Ctdl c4-cay
hiep0109
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
Huy Rùa
 
PROTEIN VÀ CHUYỂN HÓA PROTEIN
PROTEIN VÀ CHUYỂN HÓA PROTEINPROTEIN VÀ CHUYỂN HÓA PROTEIN
PROTEIN VÀ CHUYỂN HÓA PROTEIN
SoM
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
. .
 

What's hot (20)

Hướng dẫn btqttl(4 chương)
Hướng dẫn btqttl(4 chương)Hướng dẫn btqttl(4 chương)
Hướng dẫn btqttl(4 chương)
 
Bai de quy
Bai de quyBai de quy
Bai de quy
 
Linux và mã nguồn mở
Linux và mã nguồn mởLinux và mã nguồn mở
Linux và mã nguồn mở
 
bậc phản ứng
bậc phản ứngbậc phản ứng
bậc phản ứng
 
Giáó trình Hóa hữu cơ Tập 1
Giáó trình Hóa hữu cơ Tập 1Giáó trình Hóa hữu cơ Tập 1
Giáó trình Hóa hữu cơ Tập 1
 
B4 dh
B4 dhB4 dh
B4 dh
 
Bù 2
Bù 2Bù 2
Bù 2
 
Slide he dieu hanh
Slide he dieu hanhSlide he dieu hanh
Slide he dieu hanh
 
7. tìm hiểu hàm băm md5 và ứng dụng
7. tìm hiểu hàm băm md5 và ứng dụng7. tìm hiểu hàm băm md5 và ứng dụng
7. tìm hiểu hàm băm md5 và ứng dụng
 
Cấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kếtCấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kết
 
Lab lap trinhmang_v3
Lab lap trinhmang_v3Lab lap trinhmang_v3
Lab lap trinhmang_v3
 
Chia subnetmask
Chia subnetmaskChia subnetmask
Chia subnetmask
 
Hóa học protid
Hóa học protidHóa học protid
Hóa học protid
 
Phản ứng Oxi hóa khử - Điện hóa học
Phản ứng Oxi hóa khử - Điện hóa họcPhản ứng Oxi hóa khử - Điện hóa học
Phản ứng Oxi hóa khử - Điện hóa học
 
Ctdl c4-cay
Ctdl c4-cayCtdl c4-cay
Ctdl c4-cay
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
Giáo trình mạng máy tính
Giáo trình mạng máy tínhGiáo trình mạng máy tính
Giáo trình mạng máy tính
 
PROTEIN VÀ CHUYỂN HÓA PROTEIN
PROTEIN VÀ CHUYỂN HÓA PROTEINPROTEIN VÀ CHUYỂN HÓA PROTEIN
PROTEIN VÀ CHUYỂN HÓA PROTEIN
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
Hop chat amin
Hop chat aminHop chat amin
Hop chat amin
 

Viewers also liked

Bai giang-ctdl
Bai giang-ctdlBai giang-ctdl
Bai giang-ctdl
Phong Vân
 

Viewers also liked (20)

Heap sort
Heap sortHeap sort
Heap sort
 
Merge sort
Merge sortMerge sort
Merge sort
 
Quick sort
Quick sortQuick sort
Quick sort
 
Chứng minh số node của Heap chiều cao h
Chứng minh số node của Heap chiều cao hChứng minh số node của Heap chiều cao h
Chứng minh số node của Heap chiều cao h
 
Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07Kiến trúc máy tính và hợp ngữ bài 07
Kiến trúc máy tính và hợp ngữ bài 07
 
Python - Set
Python - SetPython - Set
Python - Set
 
Binary heap
Binary heapBinary heap
Binary heap
 
Bai giang-ctdl
Bai giang-ctdlBai giang-ctdl
Bai giang-ctdl
 
CTDL&GT_01
CTDL&GT_01CTDL&GT_01
CTDL&GT_01
 
Heap sort
Heap sort Heap sort
Heap sort
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
 
Heap sort
Heap sort Heap sort
Heap sort
 
Heapsort
HeapsortHeapsort
Heapsort
 
Digital Front - Buzz Manager
Digital Front - Buzz ManagerDigital Front - Buzz Manager
Digital Front - Buzz Manager
 
Hop dong tham tra tktc
Hop dong tham tra tktcHop dong tham tra tktc
Hop dong tham tra tktc
 
1 ~1
 1 ~1 1 ~1
1 ~1
 
Belcy rosas
Belcy rosasBelcy rosas
Belcy rosas
 
Новые направления деятельности проекта LinuxWizard.
Новые направления деятельности проекта LinuxWizard.Новые направления деятельности проекта LinuxWizard.
Новые направления деятельности проекта LinuxWizard.
 
Viviana veloza santamaria (1)
Viviana veloza santamaria (1)Viviana veloza santamaria (1)
Viviana veloza santamaria (1)
 
Mi nombre es derly ramírez
Mi nombre es derly ramírezMi nombre es derly ramírez
Mi nombre es derly ramírez
 

More from David Nguyen (10)

ACOMP_2014_submission_70
ACOMP_2014_submission_70ACOMP_2014_submission_70
ACOMP_2014_submission_70
 
Compressed js with NodeJS & GruntJS
Compressed js with NodeJS & GruntJSCompressed js with NodeJS & GruntJS
Compressed js with NodeJS & GruntJS
 
jQuery Super Basic
jQuery Super BasicjQuery Super Basic
jQuery Super Basic
 
Javascript native OOP - 3 layers
Javascript native OOP - 3 layers Javascript native OOP - 3 layers
Javascript native OOP - 3 layers
 
MVC4 – knockout.js – bootstrap – step by step – part 1
MVC4 – knockout.js – bootstrap – step by step – part 1MVC4 – knockout.js – bootstrap – step by step – part 1
MVC4 – knockout.js – bootstrap – step by step – part 1
 
Facebook API
Facebook APIFacebook API
Facebook API
 
Hướng dẫn sử dụng Mind Manager 8
Hướng dẫn sử dụng Mind Manager 8 Hướng dẫn sử dụng Mind Manager 8
Hướng dẫn sử dụng Mind Manager 8
 
KTMT Lý Thuyết Tổng Quát
KTMT Lý Thuyết Tổng QuátKTMT Lý Thuyết Tổng Quát
KTMT Lý Thuyết Tổng Quát
 
KTMT Số Nguyên - Số Chấm Động
KTMT Số Nguyên - Số Chấm ĐộngKTMT Số Nguyên - Số Chấm Động
KTMT Số Nguyên - Số Chấm Động
 
Mô Hình MVC 3.0
Mô Hình MVC 3.0Mô Hình MVC 3.0
Mô Hình MVC 3.0
 

Recently uploaded

26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
ltbdieu
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
dnghia2002
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 

Recently uploaded (20)

Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
các nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emcác nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ em
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 

Heap Sort

  • 1. Nguyễn Ngọc Dũng - HCMUS 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 + vd2: https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 1
  • 2. Nguyễn Ngọc Dũng - HCMUS +vd3: https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 2
  • 3. Nguyễn Ngọc Dũng - HCMUS 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 theo Max Heap. Tức là node con của node đang xét mà lớn hơn node cha thì tiến hành đổi chỗ https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 3
  • 4. Nguyễn Ngọc Dũng - HCMUS 4.2/ Cài đặt https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 4
  • 5. Nguyễn Ngọc Dũng - HCMUS 5. Xây dụng Heap (BuildHeap) 5.1/ Khái niệm - Tất cả các phần tử trên mảng có chỉ số [n/2] đến [n - 1] đều là node lá - Mỗi node lá được xem là Heap có duy nhất 1 phần tử - Thực hiện thao tác Heapify trên các phần tử có chỉ số từ [n/2 - 1] => 0 ta sẽ tạo được 1 Heap có n phần tử 5.2/ Cài đặt 5.3/ Xây dựng mảng sau thành Heap https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 5
  • 6. Nguyễn Ngọc Dũng - HCMUS - Ở mục này tôi sẽ tiến hành chay từng bước hàm BuildHeap - Lưu ý: Tôi sẽ Build Heap trên mảng với Max Heap - Ví dụ: - Theo hàm BuildHeap khởi tạo biến i = n/2 – 1 + Ta thấy mảng trên có 10 phần tử => i = 10/2 – 1 = 4 => Vậy ta sẽ bắt đầu ở vị trí 4 của mảng trên - Ta thấy vị trí 4 có giá trị là 7 và con của nó là 9 + Ta nhận thấy 9 > 4 => Ta đổi chỗ 2 thằng này https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 6
  • 7. Nguyễn Ngọc Dũng - HCMUS + Sau khi hoán vị xong ta giảm i (i--). Theo hàm BuildHeaps https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 7
  • 8. Nguyễn Ngọc Dũng - HCMUS https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 8
  • 9. Nguyễn Ngọc Dũng - HCMUS + Sau khi xây dụng Heap xong => Ta nhận thấy còn 1 vị trí ko tuân theo quy luật Max Heap: 5 và con của 5 là 15 và 1: 15 > 5 và 15 > 1 => Đổi chỗ 15 và 1 https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 9
  • 10. Nguyễn Ngọc Dũng - HCMUS => Kết quả của mảng: 6. Thuật toán HeapSort 6.1) Tư tưởng thuật toán HeapSort -B1: Xây dựng Heap => Sử dụng thao tác Heapify để chuyển đổi mảng bình thường thành Heap -B2: Sắp xếp + Hoán vị phần tử cuối cùng của Heap với phần tử đầu tiên của Heap + Loại bỏ phần tử cuối cùng + Thực hiện thao tác Heapify để điều chỉnh phần tử đầu tiên 6.2) Cài đặt HeapSort https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 10
  • 11. Nguyễn Ngọc Dũng - HCMUS 7. Chứng minh số node của Heap với chiều cao là h + Tham khảo cách chứng mình số node của BST:http://ilaptrinh.wordpress.com/2012/12/31/chung-minh-so-node- cay-nhi-phan-tim-kiem-bst/ https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 11
  • 12. Nguyễn Ngọc Dũng - HCMUS 8. Ưu điểm & Khuyết điểm https://ilaptrinh.wordpress.com/2013/01/11/heap-sort/ Page 12