Bài giảng Thuật toán ứng dụng: Chia để trị. Chương này cung cấp cho học viên những nội dung về: tổng quan chia để trị; ví dụ minh họa; độ phức tạp chia để trị; sắp xếp trộn; giảm để trị; . Mời các bạn cùng tham khảo chi tiết nội dung bài giảng! | THUẬT TOÁN ỨNG DỤNG CHIA ĐỂ TRỊ Phạm Quang Dũng Bộ môn KHMT dungpq@ 1 NộI dung Tổng quan chia để trị Ví dụ minh họa Độ phức tạp chia để trị Giảm để trị 2 Tổng quan chia để trị Chia bài toán cần giải ban đầu thành các bài toán con độc lập nhau Giải trị các bài toán con Tổng hợp lời giải của các bài toán con để dẫn ra lời giải của bài toán xuất phát 3 Ví dụ minh họa Bài toán dãy con dài nhất cho dãy số nguyên a a1 a2 an. Tìm dãy con gồm một số liên tiếp các phần tử có tổng lớn nhất Phân chia ký hiệu P i j là lời giải của bài toán tìm dãy con liên tiếp của dãy ai ai 1 aj có tổng cực đại Tổng hợp lời giải Ký hiệu PL i j là lời giải của bài toán tìm dãy con liên tiếp của dãy ai ai 1 aj sao cho phần tử cuối cùng là aj có tổng cực đại Ký hiệu PR i j là lời giải của bài toán tìm dãy con liên tiếp của dãy ai ai 1 aj sao cho phần tử đầu tiên là ai có tổng cực đại 4 Ví dụ minh họa Xét đoạn l l 1 . r . Ký hiệu m l r 2 P l r MAX P l m P m 1 r PL l m PR m 1 r l P l m P m 1 r r m m 1 PL l m PR m 1 r 5 Ví dụ minh họa include using namespace std define INF 1e9 define MAX 1000000 int a MAX int n void input cin gt gt n for int i 0 i lt n i cin gt gt a i 6 Ví dụ minh họa int PL int l int r int rs -INF int s 0 for int i r i gt l i- s a i rs max rs s return rs int PR int l int r int rs -INF int s 0 for int i l i Ví dụ minh họa int P int l int r if l r return a r int m l r 2 return max max P l m P m 1 r PL l m PR m 1 r void solve cout Độ phức tạp tính toán Chia bài toán xuất phát thành a bài procedure D-and-C n toán con mỗi bài toán con kích 1. if n n0 thước n b 2. xử lý trực tiếp T n thời gian của bài toán kích 3. else thước n 4. chia bài toán xuất phát Thời gian phân chia dòng 4 D n thành a bài toán con kích thước Thời gian tổng hợp lời giải dòng 6 n b C n 5. gọi đệ quy a bài toán con Công thức truy hồi 6. tổng hợp lời giải 7. Q 1 0 T gt 0 9 Độ phức tạp tính toán Độ phức tạp của thuật toán chia để trị định lí thợ Công thức truy hồi T n aT n b cnk với các hằng số a 1 b