1. Trang chủ
  2. » Tất cả

5 sap xep (tt)

16 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 4,07 MB

Nội dung

10/14/2018 Nội dung QuickSort CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Data Structures & Algorithms Merge Sort Heap Sort SẮP XẾP (TT) Quick Sort Quick Sort Quick Sort 10/14/2018 Quick Sort-Ý tưởng Giải thuật QuickSort xếp dãy a1, a2 , aN dựa việc phân hoạch dãy ban đầu thành phần : •Phần 1: Gồm phần tử có giá trị bé x •Phần 2: Gồm phần tử có giá trị x •Phần 3: Gồm phần tử có giá trị lớn x với x giá trị phần tử tùy ý dãy ban đầu Quick Sort – Ý tưởng Quick Sort – Ý tưởng Sau thực phân hoạch, dãy ban đầu phân thành đoạn: •1 ak ≤ x , với k = j •2 ak = x , với k = j+1 i-1 •3 ak  x , với k = i N Quick Sort – Ý tưởng • Đoạn thứ có thứ tự • Đoạn thứ có thứ tự • Nếu đoạn có phần tử : có thứ tự  dãy ban đầu Quick Sort – Ý tưởng • Bước 1: Nếu left ≥ right //dãy có phần tử Kết thúc; //dãy xếp • Bước 2: Phân hoạch dãy aleft … aright thành đoạn: aleft aj, aj+1 ai-1, aright Đoạn  x Đoạn 2: aj+1 ai-1 = x Đoạn 3: aright  x • Bước 3: Sắp xếp đoạn 1: aleft aj • Bước 4: Sắp xếp đoạn 3: aright • Nếu đoạn có nhiều phần tử dãy ban đầu có thứ tự đoạn 1, • Để xếp đoạn 3, ta tiến hành việc phân hoạch dãy theo phương pháp phân hoạch dãy ban đầu vừa trình bày … Quick Sort – Ý tưởng • Bước : Chọn tùy ý phần tử a[k] dãy giá trị mốc ( l ≤ k ≤ r): x = a[k]; i = l; j = r; • Bước : Phát hiệu chỉnh cặp phần tử a[i], a[j] nằm sai chỗ : • Bước 2a : Trong (a[i]x) j ; • Bước 2c : Nếu i< j Swap(a[i],a[j]); • Bước : Nếu i < j: Ngược lại: Dừng Lặp lại Bước 2 10/14/2018 Quick Sort – Ý tưởng Quick Sort – Ví dụ • Cho dãy số a: 12 Phân hoạch đoạn l =0, r = 7: 12 15 x = a[3] = l=0 Quick Sort – Ví dụ 15 r=7 Quick Sort – Ví dụ Quick Sort – Ví Dụ • Phân hoạch đoạn l = 0, r = 2: i=0 12 j=6 l=0 15 r=7 4 i=1 i=2 12 j=3 j=4 j=5 12 12 15 15 l=0 l=0 r=7 Quick Sort – Ví dụ r =3 i=0 j=2 Quick Sort – Ví dụ Quick Sort – Ví Dụ • Phân hoạch đoạn l =4, r = 7: • Phân hoạch đoạn l =6, r = 7: l=4 i=4 i = 46 l=4 12 15 j=6 j=6 j=7 12 15 r =7 r =7 15 10/14/2018 Quick Sort – Giải thuật Partition – Phân hoạch Partition – Phân hoạch Quick Sort – Cài đặt Quick Sort – Ví dụ Quick Sort – Ví dụ  Phân hoạch đọan [0,7]  Phân hoạch đọan [0,7] X i j 12 55 15 left X i j 12 15 right left right 24 10/14/2018 Quick Sort – Ví dụ Quick Sort – Ví dụ  Phân hoạch đọan [0,2]  Phân hoạch đọan [0,2] j i i j 12 15 12 15 right left left X right 25 26 Quick Sort – Ví dụ Quick Sort – Ví dụ  Phân hoạch đọan [4,7]  Phân hoạch đọan [5,7] i 4 left j 12 15 X j i 12 15 right left right 27 28 Quick Sort – Ví dụ Quick Sort – Ví dụ  Phân hoạch đọan [5,7] i j 12 15 left 12 15 right 29 30 10/14/2018 Quick Sort – Đánh giá Quick Sort – Độ phức tạp 31 Quick Sort – Nhận xét 32 Quick Sort – Bài Tập Cho biết kết bước xếp dãy sau tăng dần thuật toán quick Sort M={3,5,33,1,8,12,4,23,8} 33 34 Quick Sort – Cách khác Quick Sort – Bài Tập M={3,5,33,1,8,12,4,23,8} 35 36 10/14/2018 Quick Sort – Cách khác Quick Sort – Cách khác 37 38 Merge Sort – Trộn Merge Sort – Trộn Tư tưởng trộn: • Có mảng xếp chiều dài a,b • Tạo mảng chung xếp a 10 b 11 20 13 10 14 11 13 14 20 40 39 Merge Sort – Trộn Ý Tưởng Merge Sort – Trộn Bước 1: chọn phần tử đầu dãy chép qua mảng kết 10 11 20 13 14 i=0 Bước 2: hủy phần tử Bước 3: chưa đến cuối mảng trở bước Nếu đến cuối mảng: chép phần lại mảng j=0 vào mảng kết 41 42 10/14/2018 Merge Sort – Trộn 10 Merge Sort – Trộn 13 14 10 11 20 13 14 i=1 i=0 11 20 j=1 j=1 2 43 44 Merge Sort – Trộn Merge Sort – Trộn Thực 10 13 14 i=1 10 11 20 14 i=1 11 20 j=2 13 j=3 4 45 46 Merge Sort – Trộn 10 Merge Sort – Trộn 13 Chép phần lại mảng 14 i=8 j=7 11 i=8 20 20 J=5 j=6 J=5 1 10 11 13 10 11 13 14 20 14 47 48 10/14/2018 Merge Sort – Trộn Merge Sort – Trộn Ví dụ khác ta có a=(1,3,7,9), b=(2,6), q trình hịa nhập diễn sau: Danh sách a 1,3,7,9 3,7,9 3,7,9 7,9 7,9 Danh sách b 2,6 2,6 6 So sánh 1

Ngày đăng: 25/02/2023, 15:25

w