Danh mục tài liệu

Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Một số giải thuật sắp xếp và tìm kiếm

Số trang: 29      Loại file: pdf      Dung lượng: 0.00 B      Lượt xem: 125      Lượt tải: 0    
Xem trước 3 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 4: Một số giải thuật sắp xếp và tìm kiếm. Chương này có nội dung trình bày về: bài toán sắp xếp và một số phương pháp sắp xếp đơn giản; một số phương pháp sắp xếp cải tiến; bài toán tìm kiếm;... 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 - Chương 4: Một số giải thuật sắp xếp và tìm kiếm 8/4/2020 CHƯƠNG 4. MỘT SỐ GIẢI THUẬT SẮP XẾP VÀ TÌM KIẾM 4.1 Bài toán sắp xếp và một số phương pháp sắp xếp đơn giản 4.2 Một số phương pháp sắp xếp cải tiến 4.2.1 Sắp xếp nhanh (Quick Sort) 4.2.2 Sắp xếp vun đống (Heap Sort) 4.2.3 Đánh giá 4.3 Bài toán tìm kiếm 4.3.1 Khái quát về tìm kiếm 4.3.2 Tìm kiếm tuần tự (Sequential Searching) 4.3.3 Tìm kiếm nhị phân (Binary Searching) 4.3.4 Đánh giá Cấu trúc dữ liệu và giải thuật 131 4.1 Bài toán sắp xếp và một số phương pháp sắp xếp đơn giản 4.1.1 Khái quát về sắp xếp 4.1.2 Sắp xếp lựa chọn (Selection Sort) 4.1.3 Sắp xếp chèn (Insertion Sort) 4.1.4 Sắp xếp nổi bọt (Bubble Sort) 4.1.5 Độ phức tạp của các phép sắp xếp đơn giản Cấu trúc dữ liệu và giải thuật 132 66 8/4/2020 4.1.1. Khái quát về sắp xếp ◼ Sắp xếp là quá trình bố trí lại các phần tử của một tập đối tượng nào đó theo thứ tự nhất định (tăng hoặc giảm dần). ◼ Ví dụ: ❑ {1,2,5,7,9} ❑ {“An”, “Bình”, “Dương”, “Hương”} ◼ Việc sắp xếp là một bài toán phổ biến trong tin học. ❑ Do các yêu cầu tìm kiếm thuận lợi, sắp xếp kết xuất cho các bảng biểu,… ◼ Dữ liệu thường được tổ chức thành các bản ghi. Mỗi bản ghi thường có một số các trường dữ liệu khác nhau. Trường tham gia quá trình tìm kiếm gọi là khóa. Cấu trúc dữ liệu và giải thuật 133 4.1.1. Khái quát về sắp xếp ◼ Khóa sắp xếp ❑ Một bộ phận của bản ghi biểu diễn đối tượng được sắp xếp. ❑ Khóa sẽ được sử dụng để xác định thứ tự sắp xếp bản ghi trong một tập các bản ghi ◼ Bảng khóa ❑ Sử dụng trong sắp xếp khi muốn hạn chế việc di chuyển các dữ liệu. ❑ Một tập hợp các bản ghi chỉ chứa 2 trường: ◼ Khóa: Chứa khóa sắp xếp. ◼ Link: Con trỏ ghi địa chỉ của bản ghi đối tượng dữ liệu tương ứng. ❑ Thứ tự các bản ghi trong bảng khóa cho phép xác định thứ tự các bản ghi dữ liệu. Cấu trúc dữ liệu và giải thuật 134 67 8/4/2020 4.1.1. Khái quát về sắp xếp Một số phương pháp sắp xếp Cấu trúc dữ liệu và giải thuật 135 4.1.1. Khái quát về sắp xếp Các đặc trưng của thuật toán sắp xếp: ▪ Tính ổn định của thuật toán sắp xếp • Các phần tử có cùng khóa sẽ giữ nguyên thứ tự tương đối của chúng như trước khi sắp xếp ❑ Tính tại chỗ: ◼ Thuật toán đòi hỏi không gian nhớ phụ là hằng số (không phụ thuộc vào số lượng phần tử trong dãy cần sắp) Cấu trúc dữ liệu và giải thuật 136 68 8/4/2020 4.1.1. Khái quát về sắp xếp ❖Bài toán sắp xếp được đơn giản hóa dưới dạng như sau: ▪ Đầu vào: Một dãy các số nguyên (các khóa) ▪ Đầu ra: Một hoán vị của dãy số đã cho trong đó giá trị các khóa được sắp xếp theo thứ tự tăng dần. Cấu trúc dữ liệu và giải thuật 137 4.1.2 Sắp xếp lựa chọn (Selection Sort) ❖Ý tưởng: ▪ Tại mỗi lượt, chọn phần tử nhỏ nhất trong số các phần tử chưa được sắp. Đưa phần tử được chọn vào vị trí đúng bằng phép đổi chỗ. ▪ Sau lượt thứ i (i = 1..n-1), dãy cần sắp coi như được chia thành 2 phần: • Phần đã sắp: từ vị trí 1 → i • Phần chưa sắp: từ vị trí i +1 → n Cấu trúc dữ liệu và giải thuật 138 69 8/4/2020 4.1.2 Sắp xếp lựa chọn (Selection Sort) ❖ Ví dụ: sắp xếp dãy sau theo thứ tự tăng dần: A = { 12, 5, 3, 10, 18, 4, 9, 16} Lượt 1 Lượt 2 Lượt 3 Lượt 4 Lượt 5 Lượt 6 Lượt 7 12 3 3 3 3 3 3 3 5 5 4 4 4 4 4 4 3 12 12 5 5 5 5 5 10 10 10 10 9 9 9 9 18 18 18 18 18 10 10 10 4 4 5 12 12 12 12 12 9 9 9 9 10 18 18 16 16 16 16 16 16 16 16 18 Cấu trúc dữ liệu và giải thuật 139 4.1.2 Sắp xếp lựa chọn (Selection Sort) Procedure SELECTION-SORT(A,n) 1. for i = 1 to n-1 do begin 2. {Duyệt từ đỉnh} min = i; 3. {Chọn phần tử nhỏ nhất} for j = i+1 to n do if A[j] < A[min] then min = j ; 4. {Đổi chổ phần tử i và phần tử nhỏ nhất} ...

Tài liệu được xem nhiều:

Tài liệu có liên quan: