Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
652,76 KB
Nội dung
02/03/2016 Phân tích Thiết kế THUẬT TỐN Hà Đại Dương duonghd@mta.edu.vn Web: fit.mta.edu.vn/~duonghd Bài - Thiết kế thuật tốn Chia để trị - Divide&Conquer PHÂN TÍCH VÀ THIẾT KẾ THUẬ TOÁN 02/03/2016 NỘI DUNG I II III IV Giới thiệu Lược đồ chung Bài toán áp dụng Bài tập I Giới thiệu Là phương pháp áp dụng rộng rãi Ý tưởng chung phân rã toán thành toán nhỏ “độc lập” với Giải toán theo cách thức “Tổng hợp” lời tốn để có kết tốn ban đầu Tư tưởng chung cách tiếp cận Chia để trị 02/03/2016 II Lược đồ chung Chia: • Bằng cách chia tập hợp đối tượng tốn thành tốn “độc lập” • Tiếp tục chia toán giải trực tiếp (khơng cần, khơng thể chia nhỏ nữa) Trị: • Trên tốn thực cách thức: Chia nhỏ cần giải trực tiếp Tổng hợp: • Khi tốn giải, tổng hợp để có kết toán ban đầu II Lược đồ chung 02/03/2016 III Bài tốn áp dụng Tìm kiếm nhị phân The Manhattan phone book has 1,000,000+ entries How is it possible to locate a name by examining just a tiny, tiny fraction of those entries? III Bài toán áp dụng Tìm kiếm nhị phân Key idea of “phone book search”: repeated halving To find the page containing Pat Reed’s number… while (Phone book is longer than page) Open to the middle page if “Reed” comes before the first entry, Rip and throw away the 2nd half else Rip and throw away the 1st half end end 02/03/2016 III Bài tốn áp dụng Tìm kiếm nhị phân What happens to the phone book length? Original: 3000 After rip: 1500 After rips: 750 After rips: 375 After rips: 188 After rips: 94 : After 12 rips: pages pages pages pages pages pages page III Bài tốn áp dụng Tìm kiếm nhị phân • Repeatedly halving the size of the “search space” is the main idea behind the method of binary search • An item in a sorted array of length n can be located with just log2 n comparisons n log2(n) • “Savings” is significant! 100 1000 10000 10 13 02/03/2016 III Bài toán áp dụng 10 11 12 v 12 15 33 35 42 45 51 62 73 75 86 98 Binary search: target x = 70 L: Mid: R: 12 v(Mid)