TÌM KIẾM VÀ SẮP XẾP NỘI - PHẦN 3
Số trang: 72
Loại file: pdf
Dung lượng: 2.22 MB
Lượt xem: 19
Lượt tải: 0
Xem trước 8 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Các Thuật Toán Sắp Xếp1. Đổi chỗ trực tiếp – Interchange Sort 2. Chọn trực tiếp – Selection Sort 3. Nổi bọt – Bubble Sort 4. Shaker Sort 5. Chèn trực tiếp – Insertion Sort 6. Chèn nhị phân – Binary Insertion Sort 7. Shell Sort 8. Heap Sort 9. Quick Sort 10. Merge Sort 11. Radix Sort114
Nội dung trích xuất từ tài liệu:
TÌM KIẾM VÀ SẮP XẾP NỘI - PHẦN 3 Các Thuật Toán Sắp Xếp 1. Đổi chỗ trực tiếp – Interchange Sort 2. Chọn trực tiếp – Selection Sort 3. Nổi bọt – Bubble Sort 4. Shaker Sort 5. Chèn trực tiếp – Insertion Sort 6. Chèn nhị phân – Binary Insertion SortCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 7. Shell Sort 8. Heap Sort 9. Quick Sort 10. Merge Sort 11. Radix Sort 114 Thuật Toán Sắp Xếp Heap Sort Heap Sort tận dụng được các phép so sánh ở bước i-1 mà thuật toán sắp xếp chọn trực tiếp không tận dụng được Để làm được điều này Heap sort thao tác dựaCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 trên cây. 115 Thuật Toán Sắp Xếp Heap Sort Cho dãy số : 12 2 8 5 1 6 4 15 0 1 2 3 4 5 6 7 12 a[0] 2 8 a[2] a[1]CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 6 4 5 a[4] a[5] a[6] a[3] 15 a[7] 116 Thuật toán sắp xếp Heap Sort Ở cây trên, phần tử ở mức i chính là phần tử lớn trong cặp phần tử ở mức i +1, do đó phần tử ở nút gốc là phần tử lớn nhất. Nếu loại bỏ gốc ra khỏi cây, thì việc cập nhật câyCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 chỉ xảy ra trên những nhánh liên quan đến phần tử mới loại bỏ, còn các nhánh khác thì bảo toàn. Bước kế tiếp có thể sử dụng lại kết quả so sánh của bước hiện tại. Vì thế độ phức tạp của thuật toán O(nlog2n) 117 Các Bước Thuật Toán Giai đoạn 1 : Hiệu chỉnh dãy số ban đầu thành heap Giai đoạn 2: Sắp xếp dãy số dựa trên heap: Bước 1:Đưa phần tử lớn nhất về vị trí đúng ở cuối dãy: r = n-1; Swap (a1 , ar );CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Bước 2: Loại bỏ phần tử lớn nhất ra khỏi heap: r = r-1; Hiệu chỉnh phần còn lại của dãy từ a1 , a2 ... ar thành một heap. Bước 3: Nếu r>1 (heap còn phần tử ): Lặp lại Bước 2 Ngược lại : Dừng 118 Minh Họa Thuật Toán Heap: Là một dãy các phần tử al, al+1 ,... , ar thoả các quan hệ với mọi i [l, r]: ai a2i+1 ai a2i+2 // (ai , a2i+1), (ai , a2i+2 ) là các cặp phần tử liên đới Cho dãy số : 12 2 8 5 1 6 4 15CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Giai đoạn 1: Hiệu chỉnh dãy ban đầu thành Heap 12 2 8 5 1 6 4 15 0 1 2 3 4 5 6 7 Pt liên đới l=3 119 Minh Họa Thuật Toán 12 2 8 15 1 6 4 5 0 1 2 3 4 5 6 7 Pt liên l=2 đớiCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 12 2 8 15 1 6 4 ...
Nội dung trích xuất từ tài liệu:
TÌM KIẾM VÀ SẮP XẾP NỘI - PHẦN 3 Các Thuật Toán Sắp Xếp 1. Đổi chỗ trực tiếp – Interchange Sort 2. Chọn trực tiếp – Selection Sort 3. Nổi bọt – Bubble Sort 4. Shaker Sort 5. Chèn trực tiếp – Insertion Sort 6. Chèn nhị phân – Binary Insertion SortCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 7. Shell Sort 8. Heap Sort 9. Quick Sort 10. Merge Sort 11. Radix Sort 114 Thuật Toán Sắp Xếp Heap Sort Heap Sort tận dụng được các phép so sánh ở bước i-1 mà thuật toán sắp xếp chọn trực tiếp không tận dụng được Để làm được điều này Heap sort thao tác dựaCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 trên cây. 115 Thuật Toán Sắp Xếp Heap Sort Cho dãy số : 12 2 8 5 1 6 4 15 0 1 2 3 4 5 6 7 12 a[0] 2 8 a[2] a[1]CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 1 6 4 5 a[4] a[5] a[6] a[3] 15 a[7] 116 Thuật toán sắp xếp Heap Sort Ở cây trên, phần tử ở mức i chính là phần tử lớn trong cặp phần tử ở mức i +1, do đó phần tử ở nút gốc là phần tử lớn nhất. Nếu loại bỏ gốc ra khỏi cây, thì việc cập nhật câyCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 chỉ xảy ra trên những nhánh liên quan đến phần tử mới loại bỏ, còn các nhánh khác thì bảo toàn. Bước kế tiếp có thể sử dụng lại kết quả so sánh của bước hiện tại. Vì thế độ phức tạp của thuật toán O(nlog2n) 117 Các Bước Thuật Toán Giai đoạn 1 : Hiệu chỉnh dãy số ban đầu thành heap Giai đoạn 2: Sắp xếp dãy số dựa trên heap: Bước 1:Đưa phần tử lớn nhất về vị trí đúng ở cuối dãy: r = n-1; Swap (a1 , ar );CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Bước 2: Loại bỏ phần tử lớn nhất ra khỏi heap: r = r-1; Hiệu chỉnh phần còn lại của dãy từ a1 , a2 ... ar thành một heap. Bước 3: Nếu r>1 (heap còn phần tử ): Lặp lại Bước 2 Ngược lại : Dừng 118 Minh Họa Thuật Toán Heap: Là một dãy các phần tử al, al+1 ,... , ar thoả các quan hệ với mọi i [l, r]: ai a2i+1 ai a2i+2 // (ai , a2i+1), (ai , a2i+2 ) là các cặp phần tử liên đới Cho dãy số : 12 2 8 5 1 6 4 15CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Giai đoạn 1: Hiệu chỉnh dãy ban đầu thành Heap 12 2 8 5 1 6 4 15 0 1 2 3 4 5 6 7 Pt liên đới l=3 119 Minh Họa Thuật Toán 12 2 8 15 1 6 4 5 0 1 2 3 4 5 6 7 Pt liên l=2 đớiCẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 12 2 8 15 1 6 4 ...
Tìm kiếm theo từ khóa liên quan:
giải thuật bài toán tìm kiếm cấu trúc dữ liệu thuật toán quản trị dữ liệu tìm kiếm nộiTài liệu có liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 360 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 340 1 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 309 2 0 -
6 trang 213 0 0
-
Giải thuật và cấu trúc dữ liệu
305 trang 187 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 175 0 0 -
Hướng dẫn tạo file ghost và bung ghost
12 trang 161 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 149 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 146 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 144 0 0