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 - Đậu Ngọc Hà Dương
Số trang: 46
Loại file: pdf
Dung lượng: 1.46 MB
Lượt xem: 22
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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 - Đậu Ngọc Hà Dương có nội dung trình bày về bài toán sắp xếp, các thuật toán sắp xếp, selection sort, heap sort, merge sort, quick sort,... Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
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 - Đậu Ngọc Hà DươngGiảng viên:Đậu Ngọc Hà Dương2 Selection Heap Sort Sort Merge Quick Sort Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20113 Bài toán sắp xếp Các thuật toán sắp xếp Cấu trúc dữ liệu và giải thuật – HCMUS 20114 Bài toán sắp xếp: Sắp xếp là quá trình xử lý một danh sách các phần tử để đặt chúng theo một thứ tự thỏa yêu cầu cho trước Ví dụ: danh sách trước khi sắp xếp: {1, 25, 6, 5, 2, 37, 40} Danh sách sau khi sắp xếp: {1, 2, 5, 6, 25, 37, 40} Thông thường, sắp xếp giúp cho việc tìm kiếm được nhanh hơn. Cấu trúc dữ liệu và giải thuật – HCMUS 20115 Các phương pháp sắp xếp thông dụng: Buble Sort Selection Sort Insertion Sort Quick Sort Merge Sort Heap Sort Radix Sort Cần tìm hiểu các phương pháp sắp xếp và lựa chọn phương pháp phù hợp khi sử dụng. Cấu trúc dữ liệu và giải thuật – HCMUS 20116 Selection Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20117 Mô phỏng cách sắp xếp tự nhiên nhất trong thực tế Chọn phần tử nhỏ nhất và đưa về vị trí đúng là đầu dãy hiện hành. Sau đó xem dãy hiện hành chỉ còn n-1 phần tử. Lặp lại cho đến khi dãy hiện hành chỉ còn 1 phần tử. Cấu trúc dữ liệu và giải thuật – HCMUS 20118 Các bước của thuật toán: Bước 1. Khởi gán i = 0. Bước 2. Bước lặp: 2.1. Tìm a[min] nhỏ nhất trong dãy từ a[i] đến a[n-1] 2.2. Hoán vị a[min] và a[i] Bước 3. So sánh i và n: Nếui ≤ n thì tăng i thêm 1 và lặp lại bước 2. Ngược lại: Dừng thuật toán. Cấu trúc dữ liệu và giải thuật – HCMUS 20119 i=0 15 2 8 7 3 6 9 17 i=1 2 15 8 7 3 6 9 17 i=2 2 3 8 7 15 6 9 17 i=3 2 3 6 7 15 8 9 17 i=4 2 3 6 7 15 8 9 17 i=5 2 3 6 7 8 15 9 17 i=6 2 3 6 7 8 9 15 17 i=7 2 3 6 7 8 9 15 1710 Đánh giá giải thuật: Số phép so sánh: Tạilượt i bao giờ cũng cần (n-i-1) số lần so sánh Không phụ thuộc vào tình trạng dãy số ban đầu Số phép so sánh = n 1 n(n 1) (n i 1) i 0 2 Cấu trúc dữ liệu và giải thuật – HCMUS 201111 Số phép gán: n 1 Tốt nhất: 4 4n i 0 Xấu nhất: n 1 n( n 7) i 0 (4 n i 1) 2 Cấu trúc dữ liệu và giải thuật – HCMUS 201112 Heap Sort Cấu trúc dữ liệu và giải thuật – HCMUS 201113 Ý tưởng: khi tìm phần tử nhỏ nhất ở bước i, phương pháp Selection sort không tận dụng được các thông tin đã có nhờ vào các phép so sánh ở bước i-1 cần khắc phục nhược điểm này. J. Williams đã đề xuất phương pháp sắp xếp Heapsort. Cấu trúc dữ liệu và giải thuật – HCMUS 201114 Định nghĩa Heap: Giả sử xét trường hợp sắp xếp tăng dần, Heap được định nghĩa là một dãy các phần tử al, al+1, … ar thỏa: với mọi i thuộc [l,r] (chỉ số bắt đầu từ 0) ai ≥ a2i+1 ai ≥ a2i+2 {(ai,a2i+1), (ai,a2i+2) là các cặp phần tử liên đới} Cấu trúc dữ liệu và giải thuật – HCMUS 201115 Nếu al, al+1, … ar là một heap thì phần tử al (đầu heap) luôn là phần tử lớn nhất. Mọi dãy ai, ai+1, … ar với 2i + 1 > r là heap. Cấu trúc dữ liệu và giải thuật – HCMUS 201116 Giai đoạn 1: Hiệu chỉnh dãy ban đầu thành heap (bắt đầu từ phần tử giữa của dãy) Giai đoạn 2: sắp xếp dựa trên heap. Bước 1: đưa phần tử lớn nhất về vị trí đúng ở cuối dãy Bước 2: Loạibỏ phần tử lớn nhất ra khỏi heap: r = r – 1 Hiệu chỉnh lại phần còn lại của dãy. Bước 3: So sánh r và l: Nếur > l thì lặp lại bước 2. Ngược lại, dừng thuật t ...
Nội dung trích xuất từ tài liệu:
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 - Đậu Ngọc Hà DươngGiảng viên:Đậu Ngọc Hà Dương2 Selection Heap Sort Sort Merge Quick Sort Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20113 Bài toán sắp xếp Các thuật toán sắp xếp Cấu trúc dữ liệu và giải thuật – HCMUS 20114 Bài toán sắp xếp: Sắp xếp là quá trình xử lý một danh sách các phần tử để đặt chúng theo một thứ tự thỏa yêu cầu cho trước Ví dụ: danh sách trước khi sắp xếp: {1, 25, 6, 5, 2, 37, 40} Danh sách sau khi sắp xếp: {1, 2, 5, 6, 25, 37, 40} Thông thường, sắp xếp giúp cho việc tìm kiếm được nhanh hơn. Cấu trúc dữ liệu và giải thuật – HCMUS 20115 Các phương pháp sắp xếp thông dụng: Buble Sort Selection Sort Insertion Sort Quick Sort Merge Sort Heap Sort Radix Sort Cần tìm hiểu các phương pháp sắp xếp và lựa chọn phương pháp phù hợp khi sử dụng. Cấu trúc dữ liệu và giải thuật – HCMUS 20116 Selection Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20117 Mô phỏng cách sắp xếp tự nhiên nhất trong thực tế Chọn phần tử nhỏ nhất và đưa về vị trí đúng là đầu dãy hiện hành. Sau đó xem dãy hiện hành chỉ còn n-1 phần tử. Lặp lại cho đến khi dãy hiện hành chỉ còn 1 phần tử. Cấu trúc dữ liệu và giải thuật – HCMUS 20118 Các bước của thuật toán: Bước 1. Khởi gán i = 0. Bước 2. Bước lặp: 2.1. Tìm a[min] nhỏ nhất trong dãy từ a[i] đến a[n-1] 2.2. Hoán vị a[min] và a[i] Bước 3. So sánh i và n: Nếui ≤ n thì tăng i thêm 1 và lặp lại bước 2. Ngược lại: Dừng thuật toán. Cấu trúc dữ liệu và giải thuật – HCMUS 20119 i=0 15 2 8 7 3 6 9 17 i=1 2 15 8 7 3 6 9 17 i=2 2 3 8 7 15 6 9 17 i=3 2 3 6 7 15 8 9 17 i=4 2 3 6 7 15 8 9 17 i=5 2 3 6 7 8 15 9 17 i=6 2 3 6 7 8 9 15 17 i=7 2 3 6 7 8 9 15 1710 Đánh giá giải thuật: Số phép so sánh: Tạilượt i bao giờ cũng cần (n-i-1) số lần so sánh Không phụ thuộc vào tình trạng dãy số ban đầu Số phép so sánh = n 1 n(n 1) (n i 1) i 0 2 Cấu trúc dữ liệu và giải thuật – HCMUS 201111 Số phép gán: n 1 Tốt nhất: 4 4n i 0 Xấu nhất: n 1 n( n 7) i 0 (4 n i 1) 2 Cấu trúc dữ liệu và giải thuật – HCMUS 201112 Heap Sort Cấu trúc dữ liệu và giải thuật – HCMUS 201113 Ý tưởng: khi tìm phần tử nhỏ nhất ở bước i, phương pháp Selection sort không tận dụng được các thông tin đã có nhờ vào các phép so sánh ở bước i-1 cần khắc phục nhược điểm này. J. Williams đã đề xuất phương pháp sắp xếp Heapsort. Cấu trúc dữ liệu và giải thuật – HCMUS 201114 Định nghĩa Heap: Giả sử xét trường hợp sắp xếp tăng dần, Heap được định nghĩa là một dãy các phần tử al, al+1, … ar thỏa: với mọi i thuộc [l,r] (chỉ số bắt đầu từ 0) ai ≥ a2i+1 ai ≥ a2i+2 {(ai,a2i+1), (ai,a2i+2) là các cặp phần tử liên đới} Cấu trúc dữ liệu và giải thuật – HCMUS 201115 Nếu al, al+1, … ar là một heap thì phần tử al (đầu heap) luôn là phần tử lớn nhất. Mọi dãy ai, ai+1, … ar với 2i + 1 > r là heap. Cấu trúc dữ liệu và giải thuật – HCMUS 201116 Giai đoạn 1: Hiệu chỉnh dãy ban đầu thành heap (bắt đầu từ phần tử giữa của dãy) Giai đoạn 2: sắp xếp dựa trên heap. Bước 1: đưa phần tử lớn nhất về vị trí đúng ở cuối dãy Bước 2: Loạibỏ phần tử lớn nhất ra khỏi heap: r = r – 1 Hiệu chỉnh lại phần còn lại của dãy. Bước 3: So sánh r và l: Nếur > l thì lặp lại bước 2. Ngược lại, dừng thuật t ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc dữliệu và giải thuật Cấu trúc dữliệu và giải thuật Thuật toán sắp xếp Bài toán sắp xếp Selection sort Heap sortGợi ý tài liệu liên quan:
-
Giáo án môn Tin học lớp 7 sách Kết nối tri thức: Bài 16
8 trang 36 0 0 -
Giáo trình Cấu trúc dữ liệu: Phần 2
108 trang 32 0 0 -
Thuật toán Algorithms (Phần 1)
10 trang 31 0 0 -
Lecture Data structures and algorithms: Chapter 10 - Sorting
63 trang 29 0 0 -
Thuật toán Algorithms (Phần 56)
10 trang 27 0 0 -
Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 5 - Nguyễn Đức Nghĩa
0 trang 26 0 0 -
Giáo trình Lý thuyết và bài tập Pascal nâng cao - NXB Thống kê
436 trang 24 0 0 -
Bài giảng Một số thuật toán cơ bản - TS. Nguyễn Thị Bạch Tuyết
9 trang 24 0 0 -
Mô hình Toán học rời rạc ứng dụng trong tin học: Phần 2
362 trang 23 0 0 -
Đề tài Công nghệ thông tin: Các thuật toán sắp xếp cơ bản
7 trang 22 0 0