KHOA CÔNG NGHỆ THÔNG TIN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT (Data Structures And Algorithms) BÀI 4 CÁC GIẢI THUẬT SẮP XẾP NÂNG CAO NỘI DUNG QUICK SORT MERGE SORT HEAP SORT 01 02 03 感谢您下载包图网平台上[.]
KHOA CÔNG NGHỆ THÔNG TIN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT (Data Structures And Algorithms) BÀI 4: CÁC GIẢI THUẬT SẮP XẾP NÂNG CAO 01 QUICK SORT NỘI DUNG 02 MERGE SORT 03 HEAP SORT 01 QUICK SORT •Thuật toán xếp Quick Sort (sắp xếp nhanh) phức tạp chút so với thuật toán xếp khác •Cho danh sách phần tử, thuật tốn quick sort thuật toán chia để trị, đệ quy bao gồm phần chính: Chọn giá trị làm mốc (pivot value) Phân vùng danh sách làm hai: danh sách trái (nhỏ giá trị mốc), danh sách phải (lớn giá trị mốc) Đệ quy cho danh sách trái, đệ quy cho danh sách phải 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN 01 QUICK SORT Lấy giá trị làm mốc: Lấy giá trị lớn hai giá trị bên trái (3) Phân vùng danh sách thành hai danh sách: danh sách chứa phần tử có giá trị < mốc, danh sách chứa phần tử có giá trị ≥ mốc 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Danh sách < mốc = 1 Danh sách ≥ mốc = 3 Đệ quy Danh sách 1 xong 1 xong Đây danh sách cuối cùng… KHOA CÔNG NGHỆ THÔNG TIN Danh sách 4 3 xong 3 xong 6 5 xong xong xong 01 QUICK SORT l biên trái, r biên phải l pval l l từ biên trái tìm ptử ≥ pval, r từ biên phải tìm ptử < pval Nếu l != r Hoán vị ptử l với r Khi l < r, tìm tiếp l r Nếu l != r Hốn vị ptử l với r Khi l < r, tìm tiếp l r Dừng l ≥ r Tách làm danh sách dựa vào mục l KHOA CÔNG NGHỆ THÔNG TIN 4 1 5 9 r r 5 l r l r l r l,r 1 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com 5 01 QUICK SORT Giao diện public int[] sort( int[] list ) { return (qsort( list, 0, list.Length - )); } // Sort private int[] qsort( int[] list, int left, int right ) { int pval, l = left, r = right, temp; 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com if ( l == r ) return list; Lấy giá trị lớn hai số bên trái danh sách KHOA CÔNG NGHỆ THÔNG TIN if ( list[l] >= list[l+1] ) pval = list[l]; else pval = list[l+1]; 01 QUICK SORT Ở ta phân vùng danh sách thành hai danh sách Đây hai danh sách ảo danh sách xác định số, hai mảng riêng biệt… while ( l < r ) { while (( list[l] < pval ) && ( l < r )) Chụm vào từ bên phải bên l ++; trái tìm thấy giá while (( list[r] >= pval ) && ( l < r )) trị để hoán vị ta chạy hết r ; phần tử danh sách 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN 01 QUICK SORT if ( l != r ) { temp = list[l]; list[l] = list[r]; list[r] = temp; Nếu mục trái khác mục phải ta tim giá trị để hoán vị, ta thực hoán vị… } // if } // while 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Nếu xảy hốn vị ta đệ quy; ngược lại, ta kết thúc… KHOA CÔNG NGHỆ THÔNG TIN qsort( list, left, l-1 ); qsort( list, l, right ); return list; } // qsort 01 QUICK SORT Hiệu Quick Sort bị tác động phần tử chọn làm điểm mốc Hiệu xuất quick sort trường hợp xấu nhất, O(n2) 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Trường hợp tổng quát, quick sort có thực thi O(n log n) thời gian biểu thị bên phải… Quick Sort coi xếp nhanh Ưu điểm: cực nhanh KHOA CÔNG NGHỆ THÔNG TIN Nhược điểm: phức tạp đệ quy ạt 02 MERGE SORT •Merge Sort (Sắp Xếp Trộn) thuật toán đệ quy, chia để trị •Các bước thuật tốn là: ̶ Đệ quy phân vùng danh sách đầu vào thành hai danh sách, L1 L2 khoảng n/2 phần tử danh sách ta có tập danh sách với phần tử danh sách ̶ Đến đây, L1 L2 trộn lại thành danh sách S, phần tử L1 L2 đưa vào danh sách S theo thứ tự 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN 10 ... SORT 03 HEAP SORT 01 QUICK SORT ? ?Thuật tốn xếp Quick Sort (sắp xếp nhanh) phức tạp chút so với thuật tốn xếp khác •Cho danh sách phần tử, thuật toán quick sort thuật toán chia để trị, đệ quy bao... đệ quy ạt 02 MERGE SORT •Merge Sort (Sắp Xếp Trộn) thuật tốn đệ quy, chia để trị •Các bước thuật toán là: ̶ Đệ quy phân vùng danh sách đầu vào thành hai danh sách, L1 L2 khoảng n/2 phần tử danh... làm điểm mốc Hiệu xuất quick sort trường hợp xấu nhất, O(n2) 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Trường hợp tổng quát, quick sort