Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 6: Các thuật toán sắp xếp
Số trang: 54
Loại file: pdf
Dung lượng: 1.78 MB
Lượt xem: 14
Lượt tải: 0
Xem trước 6 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 - Chương 6: Các thuật toán sắp xếp" giới thiệu tới người học các bài toán sắp xếp, các thuật toán sắp xếp, sắp xếp vun đống, các tính chất của Heap, sắp xếp nhanh. Cuối mỗi phần đều có các bài tập ứng dụng dành cho các bạn sinh viên ôn tập và củng cố kiến thức đã học. Mời các bạn cùng tham khảo nội dung chi tiế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 - Chương 6: Các thuật toán sắp xếpGiảng viên:Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến2 Radix Sort Heap Sort Quick Selection Sort Sort Merge Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20133 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 20134 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 20135 Các phương pháp sắp xếp thông dụng: Bubble 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 20136 Selection Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20137 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 20138 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 20139 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 17 Cấu trúc dữ liệu và giải thuật – HCMUS 201310 Đá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) i 0 (n i 1) 2 Cấu trúc dữ liệu và giải thuật – HCMUS 201311 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 201312 Heap Sort Cấu trúc dữ liệu và giải thuật – HCMUS 201313 Ý 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 201314 Đị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 201315 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 201316 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ộ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 - Chương 6: Các thuật toán sắp xếpGiảng viên:Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến2 Radix Sort Heap Sort Quick Selection Sort Sort Merge Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20133 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 20134 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 20135 Các phương pháp sắp xếp thông dụng: Bubble 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 20136 Selection Sort Cấu trúc dữ liệu và giải thuật – HCMUS 20137 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 20138 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 20139 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 17 Cấu trúc dữ liệu và giải thuật – HCMUS 201310 Đá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) i 0 (n i 1) 2 Cấu trúc dữ liệu và giải thuật – HCMUS 201311 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 201312 Heap Sort Cấu trúc dữ liệu và giải thuật – HCMUS 201313 Ý 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 201314 Đị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 201315 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 201316 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 ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài toán giải thuật Thuật toán sắp xếp Bài toán sắp xếp Tính chất của Heap Sắp xếp vun đốngTài liệu 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 320 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 164 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 152 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 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 139 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 125 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 75 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 75 0 0 -
49 trang 72 0 0
-
Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Hoàng Mạnh Hà
67 trang 70 0 0