
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
Thông tin tài liệu:
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ìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu và giải thuật Bài giảng Cấu trúc dữ liệu và giải thuật Giải thuật sắp xếp Giải thuật tìm kiếm Phương pháp sắp xếp Bài toán tìm kiếmTài liệu có 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 357 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 186 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 171 0 0 -
57 trang 168 1 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 166 0 0 -
3 trang 165 3 0
-
10 trang 145 0 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 1 - Trần Hạnh Nhi
98 trang 122 0 0 -
49 trang 87 0 0
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Phần 1 - ThS. Hoàng Thế Phương
128 trang 73 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Ngô Công Thắng
8 trang 72 0 0 -
10 trang 71 0 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Lê Văn Vinh
67 trang 66 1 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
20 trang 57 0 0 -
Giáo trình Trí tuệ nhân tạo- Đại học Sư Phạm Hà Nội
35 trang 44 0 0 -
Lecture Data structures and algorithms: Chapter 9 - Hash
58 trang 42 0 0 -
Lecture Data structures and algorithms: Chapter 4 - Lists
100 trang 37 0 0 -
Lecture Data structures and algorithms: Chapter 7 - AVL Trees, B - Trees
82 trang 37 0 0 -
Lecture Data structures and algorithms: Chapter 8 - Heaps
44 trang 37 0 0 -
Lecture Data structures and algorithms: Chapter 6 - Trees
62 trang 36 0 0