Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4 - Châu Thị Bảo Hà
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 - Châu Thị Bảo HàCHƯƠNG 4: SẮP XẾP (SORTING)NỘI DUNG Tổng quan Các phương pháp sắp xếp thông dụng Chương 4: Sắp xếp 2 TỔNG QUAN Tại sao phải sắp xếp? Để có thể sử dụng thuật toán tìm nhị phân Để thực hiện thao tác nào đó được nhanh hơn Định nghĩa 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 mãn một tiêu chuẩn nào đó dựa trên nội dung thông tin lưu giữ tại mỗi phần tử 3Chương 4: Sắp xếp CÁC PHƯƠNG PHÁP SẮP XẾP THÔNG DỤNG Phương pháp Đổi chỗ trực tiếp (Interchange sort) Phương pháp Nổi bọt (Bubble sort) Phương pháp Chèn trực tiếp (Insertion sort) Phương pháp Chọn trực tiếp (Selection sort) Phương pháp dựa trên phân hoạch (Quick sort) 4Chương 4: Sắp xếpINTERCHANGE SORT Khái niệm nghịch thế: Xét một mảng các số a[0], a[1], … a[n-1] Chương 4: Sắp xếp Nếu có i a[j], thì ta gọi đó là một nghịch thế Mảng chưa sắp xếp sẽ có nghịch thế Mảng đã có thứ tự sẽ không chứa nghịch thế a[0] a[1] … a[n -1] 5 INTERCHANGE SORT – Ý TƯỞNG Nhận xét: Để sắp xếp một dãy số, ta có thể xét các nghịch thế có trong dãy và làm triệt tiêu dần chúng đi Ý tưởng: Xuất phát từ đầu dãy, tìm tất cả nghịch thế chứa phần tử này, triệt tiêu chúng bằng cách đổi chỗ phần tử này với phần tử tương ứng trong cặp nghịch thế Lặp lại xử lý trên với các phần tử tiếp theo trong dãy 6Chương 4: Sắp xếp INTERCHANGE SORT – VÍ DỤ Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] j 0 1 2 3 4 5 6 7 1 12 2 8 5 1 6 4 15 i 7Chương 4: Sắp xếp INTERCHANGE SORT – VÍ DỤ Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] j 0 1 2 3 4 5 6 7 1 12 2 8 5 2 6 4 15 i 8Chương 4: Sắp xếp INTERCHANGE SORT – VÍ DỤ Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] j 0 1 2 3 4 5 6 7 1 2 12 4 8 5 6 4 15 i 9Chương 4: Sắp xếp INTERCHANGE SORT – VÍ DỤ Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] j 0 1 2 3 4 5 6 7 1 2 4 12 5 8 6 5 15 i 10Chương 4: Sắp xếp INTERCHANGE SORT – VÍ DỤ Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] 0 1 2 3 4 5 6 7 1 2 4 5 6 8 12 15 11Chương 4: Sắp xếp INTERCHANGE SORT – THUẬT TOÁN // input: dãy (a, n) // output: dãy (a, n) đã được sắp xếp Bước 1: i = 0; // bắt đầu từ đầu dãy Bước 2: j = i+1; Bước 3: Trong khi j < n thực hiện: Nếu a[i]>a[j] thì đổi chỗ a[i], a[j] j = j+1; Bước 4: i = i+1; Nếu (i < n-1): Lặp lại Bước 2 Ngược lại: Dừng 12Chương 4: Sắp xếpINTERCHANGE SORT - CÀI ĐẶT Chương 4: Sắp xếp 13 INTERCHANGE SORT - ĐÁNH GIÁ GIẢI THUẬT Số lượng các phép so sánh xảy ra không phụ thuộc vào tình trạng của dãy s ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu Cấu trúc dữ liệu và giải thuật Phương pháp sắp xếp Phương pháp đổi chỗ trực tiếp Phương pháp nổi bọtGợi ý tà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 318 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 166 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 163 0 0 -
3 trang 162 3 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 156 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 150 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 -
10 trang 138 0 0
-
57 trang 133 1 0
-
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 124 0 0 -
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
29 trang 120 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 115 0 0 -
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 3 - Một số mô hình thuật toán
42 trang 74 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 74 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 73 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 -
54 trang 70 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 67 0 0