bài giảng cấu trúc dữ liệu và thuật toán chương 4 sắp xếp

71 483 0
bài giảng cấu trúc dữ liệu và thuật toán chương 4 sắp xếp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 2 Chương 4: Sắp xếp 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ử (hoặc các mẫu tin) để đặ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ử 3 Chương 4: Sắp xếp Các phương pháp sắp xếp thông dụng 4  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) Chương 4: Sắp xếp Interchange Sort  Khái niệm nghịch thế:  Xét một mảng các số a[0], a[1], … a[n-1]  Nếu có i<j và a[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 Chương 4: Sắp xếp 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 6 Chươ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 7 Chương 4: Sắp xếp Interchange Sort – Ví dụ 8 2 8 5 1 6 4 1512 2 3 4 5 6 7 81 i j 1 Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] Chương 4: Sắp xếp 9 12 8 5 2 6 4 151 2 3 4 5 6 7 81 i j 2 Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] Interchange Sort – Ví dụ Chương 4: Sắp xếp Interchange Sort – Ví dụ 10 2 12 8 5 6 4 151 2 3 4 5 6 7 81 i j 4 Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] Chương 4: Sắp xếp [...]... n! như sau: Chương 2: Hàm – Đệ quy  n * (n - 1)! n!   0!  1 15 6 Đệ quy (Recursion) Phương pháp thiết kế một giải thuật đệ quy:  ◦ Tham số hoá bài toán ◦ Phân tích trường hợp chung : đưa bài toán dưới dạng bài toán cùng loại nhưng có phạm vi giải quyết nhỏ hơn theo nghiã dần dần sẽ tiến đến trường hợp suy biến ◦ Tìm trường hợp suy biến 16 Chương 2: Hàm – Đệ quy 6 Đệ quy (Recursion)  Chương trình... 3*GT(2) GT 2nd: N =4, Chưa xong: 4* GT(3) GT 1st: N=5, Chưa xong: 5*GT (4) CT chính: Chưa xong: answer . 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 2 Chương 4: Sắp xếp Tổng quan  Tại sao phải sắp xếp?  Để có thể sử dụng thuật toán tìm nhị. a[j] Chương 4: Sắp xếp 9 12 8 5 2 6 4 151 2 3 4 5 6 7 81 i j 2 Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] Interchange Sort – Ví dụ Chương 4: Sắp xếp Interchange Sort – Ví dụ 10 2 12 8 5 6 4 151 2. 151 2 3 4 5 6 7 81 i j 4 Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] Chương 4: Sắp xếp Interchange Sort – Ví dụ 11 2 4 12 8 6 5 151 2 3 4 5 6 7 81 i j 5 Nếu a[i] > a[j] thì đổi chỗ a[i], a[j] Chương

Ngày đăng: 19/10/2014, 12:10

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan