Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
171,01 KB
Nội dung
Chia để trị Bài giảng chuyên đề "Phân tích thiết kế thuật toán" Ngày tháng năm 2020 Chia để trị / 20 Nôi dung Ý tưởng chia để trị Lược đồ giải thuật Một số tốn điển hình Chia để trị / 20 Ý tưởng chia để trị Nội dung Ý tưởng chia để trị Lược đồ giải thuật Một số tốn điển hình Chia để trị / 20 Ý tưởng chia để trị Ý tưởng Phương pháp thiết kế dựa hai thao tác chính: Chia (Divide): phân rã toán ban đầu thành tốn có kích thước nhỏ hơn, có cách giải Trị (Conquer ): giải toán (theo cách tương tự toán đầu - đệ qui) tổng hợp lời giải để nhận kết toán ban đầu Việc “phân rã” thực miền liệu (chia miền liệu thành miền nhỏ tương đương với toán con) Chia để trị / 20 Lược đồ giải thuật Mơ hình - Lược đồ giải thuật Mơ hình Xét toán miền liệu R D&C(R) hàm thể cách giải toán miền liệu R theo phương pháp chia để trị Nếu R phân rã thành n miền con: R = R1 ∪ R2 ∪ ∪ Rn Lược đồ giải thuật D&C(R) if (R = R0 ) Giải D&C(R0 ) else { Chia miền R thành R1 , R2 , , Rn for ( i = 1; i x Đổi chỗ aj hai phía chưa vượt qua tiếp tục trình duyệt đổi chỗ i ≤ j Chia để trị / 20 Một số tốn điển hình Bài tốn xếp mảng QuickSort(a, l, r) i = l; j = r; x = a[(l+r)/2]; while (i x) j–-; if (i