Bài giảng Cấu trúc dữ liệu và giải thuật: Các thuật toán sắp xếp cung cấp cho người học các kiến thức về bài toán sắp xếp và thuật toán sắp xếp, radix sort, heap sort, merge sort, selection sort, selection sort. Mời các bạn cùng tham khảo.
S1 S2 27 12 38 Pivot S1 27 12 Pivot 12 S1 38 39 16 U.K 27 16 S2 16 39 Pivot 12 27 S2 S1 27 16 Unknown 39 27 27 38 S2 39 27 38 Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 15 37 Chạy tay thuật toán Quick Sort để xếp mảng A trường hợp tăng dần giảm dần A = {2, 9, 5, 12, 20, 15, -8, 10} Cấu trúc liệu giải thuật – HCMUS 2016 38 Đánh giá giải thuật: Hiệu phụ thuộc vào việc chọn giá trị mốc Tốt phần tử median Nếu phần tử mốc cực đại hay cực tiểu việc phân hoạch khơng đồng Bảng tổng kết: Độ phức tạp Tốt O(nlog2n) Trung bình O(nlog2n) Xấu O(n2) Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 16 39 Merge Sort Cấu trúc liệu giải thuật – HCMUS 2016 40 Thực theo hướng chia để trị Do John von Neumann đề xuất năm 1945 Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 17 41 Nếu dãy có chiều dài 1: xếp Ngược lại: Chia dãy thành dãy (chiều dài tương đương nhau) Sắp xếp dãy thuật toán Merge Sort Trộn dãy (đã xếp) thành dãy xếp Cấu trúc liệu giải thuật – HCMUS 2016 42 Input: Dãy A số left, right (sắp xếp dãy A gồm phần tử có số từ left đến right) Output: Dãy A xếp MergeSort(A, left, right) { if (left < right) { mid = (left + right)/2; MergeSort(A, left, mid); MergeSort(A, mid+1, right); Merge(A, left, mid, right); } } Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 18 43 15 15 15 15 2 8 7 3 15 7 2 17 6 3 17 17 15 17 9 17 17 Cấu trúc liệu giải thuật – HCMUS 2016 44 Số lần chia dãy con: log2n Chi phí thực việc trộn hai dãy xếp tỷ lệ thuận với n Chi phí Merge Sort O(nlog2n) Thuật tốn khơng sử dụng thơng tin đặc tính dãy cần xếp => chi phí thuật tốn khơng đổi trường hợp Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 19 45 Cấu trúc liệu giải thuật – HCMUS 2016 46 Radix Sort Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 20 47 Khơng dựa vào việc so sánh phần tử Sử dụng ‘thùng’ để nhóm giá trị theo số vị trí xem xét Nối kết giá trị ‘thùng’ để tạo thành dãy xếp Cấu trúc liệu giải thuật – HCMUS 2016 49 Cho dãy số sau: 27, 78, 52, 39, 17, 46 Cơ số: 10, Số lượng ký số: Xét ký số thứ 17 52 46 27 78 39 Kết hợp lại: 52, 46, 27, 17, 78, 39 Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 21 50 Xét ký số thứ của: 52, 46, 27, 17, 78, 39 17 27 39 46 52 78 Kết hợp dãy có thứ tự: 17, 27, 39, 46, 52, 78 Cấu trúc liệu giải thuật – HCMUS 2016 51 Độ phức tạp thuật toán: O(n) (Chi tiết hơn: O(k*n) với k số lượng ký số) Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 22 52 Cấu trúc liệu giải thuật – HCMUS 2016 53 Các thuật toán Bubble sort, Selection sort, Insertion sort Cài đặt thuật toán đơn giản Chi phí thuật tốn cao: O(n2) Heap sort cải tiến từ Selection sort chi phí thuật tốn thấp hẳn (O(nlog2n)) Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 23 54 Các thuật toán Quick sort, Merge sort thuật toán theo chiến lược chia để trị Cài đặt thuật toán phức tạp Chi phí thuật tốn thấp: O(nlog2n) Rất hiệu dùng danh sách liên kết Trong thực tế, Quick sort chạy nhanh hẳn Merge sort Heap sort Cấu trúc liệu giải thuật – HCMUS 2016 55 Người ta chứng minh O(nlog2n) ngưỡng chặn thuật toán xếp dựa việc so sánh giá trị phần tử Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 24 56 Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 25 ... dài tương đương nhau) Sắp xếp dãy thuật toán Merge Sort Trộn dãy (đã xếp) thành dãy xếp Cấu trúc liệu giải thuật – HCMUS 2016 42 Input: Dãy A số left, right (sắp xếp dãy A gồm phần tử có... ngưỡng chặn thuật toán xếp dựa việc so sánh giá trị phần tử Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com © FIT-HCMUS https://fb.com/tailieudientucntt 24 56 Cấu trúc liệu giải thuật –... thứ tự: 17, 27, 39, 46, 52, 78 Cấu trúc liệu giải thuật – HCMUS 2016 51 Độ phức tạp thuật toán: O(n) (Chi tiết hơn: O(k*n) với k số lượng ký số) Cấu trúc liệu giải thuật – HCMUS 2016 CuuDuongThanCong.com