Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
842,5 KB
Nội dung
Baøi Toaùn Tìm Kieám Nhò Phaân 07/05/13 www.brainybetty.com 2 KIỂM TRA BÀI CŨ KIỂM TRA BÀI CŨ A. Kiểm Tra Bài Cũ 1/ Hãy trình bày ý tưởng của bài toántìmkiếm tuần tự? Trả lời : Lần lượt so sánh từng số hạng trong dãy A với khóa cần tìm cho đến khi hoặc tìm thấy một số hạng bằng khóa hoặc dãy đã xét hết và không có giá trò nào bằng khóa. 2/ Cho dãy A = 3 6 7 9 11 14 18 20 và k = 18 a) Hãy cho biết dãy A có tính chất gì? Trả lời : Dãy A là một dãy có thứ tự không giảm b) Máy tính sẽ thực hiện đến lần thứ mấy thì sẽ tìm thấy được k trong dãy A? Trả lời : Đến lần thứ 7 thì sẽ tìm được k trong dãy A 07/05/13 www.brainybetty.com 3 BÀI TOÁNTÌMKIẾMNHỊPHÂN BÀI TOÁNTÌMKIẾMNHỊPHÂN A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu MỤC ĐÍCH YÊU CẦU MỤC ĐÍCH YÊU CẦU - Biết một bài toán có thể được giải bằng nhiều thuậttoán khác nhau - Hiểu được ý tưởng của bài toántìmkiếm nhò phân - Biết trình bày thuậttoán theo hai cách liệt kê và sơ đồ khối 07/05/13 www.brainybetty.com 4 1 2 3 4 5 6 7 8 A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu C. Nội Dung NỘI DUNG NỘI DUNG 1. Xét ví dụ : 1. Xét ví dụ : - Giả sử, có một tấm bìa được kẽ các ô vuông bằng nhau trên cả hai mặt tấm bìa và được đánh số thứ tự trên một mặt. Mặt còn lại tiến hành điền vào các giá trò số khác nhau theo thứ tự từ nhỏ đến lớn,theo chiều từ trái sang phải. - Có hai học sinh đố nhau. Làm cách nào để cắt ra được một ô vuông có giá trò bất kỳ, sao cho số lần cắt là ít nhất (với điều kiện là học sinh cắt bìa không được nhìn thấy giá trò các số ghi trên mỗi ô vuông) 3 6 7 11 15 20 25 30 Mặt 1 : Mặt 2 : BÀI TOÁNTÌMKIẾMNHỊPHÂN BÀI TOÁNTÌMKIẾMNHỊPHÂN - Giả sử cần cắt ra ô vuông có giá trò là : 15 07/05/13 www.brainybetty.com 5 BÀI TOÁNTÌMKIẾMNHỊPHÂN BÀI TOÁN TÌM KIẾMNHỊPHÂN 1 2 3 4 5 6 7 8 A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu C. Nội Dung 1. Xét ví dụ : 5 6 7 81 2 3 4 3 6 7 11 15 20 25 30 Học sinh 1 : Học sinh 2 : 5 6 7 8 Kiểm tra ô vuông có giá trò cần cắt 5 6 7 8 Học sinh 1 : Học sinh 2 : Kiểm tra ô vuông có giá trò cần cắt 15 20 25 30 5 6 Học sinh 1 : 5 6 Học sinh 2 : 15 Đưa ra ô vuông có chứa giá trí cần cắt 07/05/13 www.brainybetty.com 6 BÀI TOÁN TÌM KIẾMNHỊPHÂN BÀI TOÁN TÌM KIẾMNHỊPHÂN A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu C. Nội Dung 2. Xác đònh bài toán : • Input : • Output : 2. Xác đònh bài toán : Input Output Dãy A là dãy tăng gồm N số nguyên khác nhau a 1 , a 2 , . , a N và một số nguyên k Chỉ số i mà a i = k hoặc thông báo không tìm thấy k trong dãy A 1. Xét ví dụ : 07/05/13 www.brainybetty.com 7 BÀI TOÁN TÌM KIẾMNHỊPHÂN BÀI TOÁN TÌM KIẾMNHỊPHÂN A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu C. Nội Dung 3. Ý tưởng : Sử dụng tính chất dãy A là dãy tăng, ta chia đôi dãy thành hai dãy con, phạm vi tìmkiếm sẽ được thu hẹp sau mỗi lần so sánh khóa với số hạng được chọn. Ta chọn số hạng a Giữa để so sánh với k, trong đó: 2. Xác đònh bài toán : Input Output - Nếu a Giữa = k 3. Ý tưởng : Giua = [(N + 1) / 2] thì đưa ra Giua, rồi kết thúc - Nếu a Giữa > k- Nếu a Giữa > k thì phạm vi tìmkiếm được thu hẹp lại trên nữa dãy đầu so với dãy ban đầu - Nếu a Giữa < k- Nếu a Giữa < k thì phạm vi tìmkiếm được thu hẹp lại trên nữa dãy sau so với dãy ban đầu 1. Xét ví dụ : 07/05/13 www.brainybetty.com 8 BÀI TOÁNTÌMKIẾMNHỊPHÂN BÀI TOÁNTÌMKIẾMNHỊPHÂN A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu C. Nội Dung 2. Xác đònh bài toán : Input Output 3. Ý tưởng : 1. Xét ví dụ : 4. Thuậttoán : 4. Thuậttoán : a) Liệt kê : Liệt kê Bước 1 : Nhập N, các số hạng a 1 , a 2 , . , a N và khóa k Bước 2 : Dau ← 1 , Cuoi ← N Bước 3 : Giua ← [(Dau+Cuoi)/2] Bước 4 : Nếu a Giua = k thì thông báo chỉ số Giua, rồi kết thúc. Bước 5 : Nếu a Giua > k thì Cuoi = Giua - 1, rồi chuyển đến bước 7 Bước 6 : Dau ← Giua + 1 Bước 7 : Nếu Dau > Cuoi thì thông báo dãy A không có số hạng có giá trò bằng k, rồi kết thúc Bước 8 : Quay lại bước 3 07/05/13 www.brainybetty.com 9 A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu C. Nội Dung 2. Xác đònh bài toán : Input Output 3. Ý tưởng : 1. Xét ví dụ : 4. Thuậttoán : Liệt kê Bước 1 : Nhập N, các số hạng a 1 , a 2 , . , a N và khóa k Bước 2 : Dau ← 1 , Cuoi ← N Bước 3 : Giua ← [(Dau+Cuoi)/2] Bước 4 : Nếu a Giua = k thì thông báo chỉ số Giua, rồi kết thúc. Bước 5 : Nếu a Giua > k thì Cuoi = Giua-1, rồi chuyển đến bước 7 Bước 6 : Dau ←Giua + 1 Bước 7 : Nếu Dau > Cuoi thì thông báo dãy A không có số hạng có giá trò bằng k, rồi kết thúc Bước 8 : Quay lại bước 3 Đưa ra vò trí Giua, rồi kết thúc Nhập N; dãy a 1 ,. . . ,a N ; K Dau 1 ; Cuoi N Giua [ (Dau + Cuoi)/2 ] A Giua = K? A Giua >K? Dau Giua + 1 Cuoi Giua -1 Thông báo K không có trong dãy số A , rồi kết thúc Dau > Cuoi? Bước 1 : Nhập N, các số hạng a 1 , a 2 , . , a N và khóa k Bước 2 : Dau ← 1 , Cuoi ← N Bước 3 : Giua ← [(Dau+Cuoi)/2] Bước 4 : Nếu a Giua = k thì thông báo chỉ số Giua, rồi kết thúc. Đ S Bước 5 : Nếu a Giua > k thì Cuoi = Giua-1, rồi chuyển đến bước 7 Đ S Bước 6 : Dau ←Giua + 1 Bước 7 : Nếu Dau > Cuoi thì thông báo dãy A không có số hạng có giá trò bằng k, rồi kết thúc Đ S Bước 8 : Quay lại bước 3 b) Sơ đồ khối : Sơ đồ khối Mô phỏng Đưa ra vò trí Giua rồi kết thúc Nhập N; dãy a 1 ,. . . ,a N ; K Dau 1 ; Cuoi N Giua [ (Dau + Cuoi)/2 ] A Giua = K? A Giua >K? Dau Giua + 1 Cuoi Giua -1 Thông báo K không có trong dãy số A , rồi kết thúc Dau > Cuoi? Đ S Đ S S 2221 30 31 3396542 N = 10 K = 21 GiuaDau Cuoi 76 8 9 1054321 Nhập N; dãy a 1 ,. . . ,a N ; K Dau 1 ; Cuoi N Giua [ (Dau + Cuoi)/2 ] A Giua = K? K = 21 A Giua >K? 76 8 9 1054321 Dau Giua + 1 Dau 76 8 9 10 Dau Cuoi Dau > Cuoi? Giua [ (Dau + Cuoi)/2 ] Giua A Giua = K? 2221 30 31 33 S A Giua >K? 76 8 9 10 Cuoi Giua -1 Cuoi S Dau > Cuoi? 76 Dau Cuoi Giua [ (Dau + Cuoi)/2 ] Giua A Giua = K? 2221 Đưa ra vò trí Giua rồi kết thúc Giua = 6 2221 30 31 3396542 2221 30 31 33 21 [...]... Xác đònh bài toán : Input Output 3 Ý tưởng : 4 Thuậttoán : Liệt kê Sơ đồ khối Mô phỏng D Củng Cố 07/05/13 3/ 2/ Cho so sánh 3 i gian thự nhiệnigiữ để có toán 1/ Hãy dãy biếtthờ6u 7 9n11c 14 18có a thuậtthể s tìm cho A = điề kiệ cầ phả 20 dụnkiếm tuần t tìmtìm m nhò phân ? n g thuậttoán và kiế kiếm nhò phâ Trả lời :y mô phỏng việc thực hiện tìmkiếm nhò a) Hã phân, với khóa cần tìm k = 6 ?... phỏng việc thực hiện tìmkiếm nhò a) Hã phân, với khóa cần tìm k = 6 ? Dãyiđã cho phải lànmột dãym của thuật Thờ gian thực hiệ tìm kiế có thứ tự toán nhò phân nhanh hơn thuậttoán tuần tự, b) Hã mô kể ng việc phé hiện tìm sánh hạn chếángphỏsố lượngthực p toán so kiếm nhò phân, toákhó trong thuậtvới n a cần tìm k = 15 ? Kính chúc sức khỏe q thầy cô Các em học sinh học tập tiến bộ . BÀI TOÁN TÌM KIẾM NHỊ PHÂN BÀI TOÁN TÌM KIẾM NHỊ PHÂN - Giả sử cần cắt ra ô vuông có giá trò là : 15 07/05/13 www.brainybetty.com 5 BÀI TOÁN TÌM KIẾM NHỊ. www.brainybetty.com 6 BÀI TOÁN TÌM KIẾM NHỊ PHÂN BÀI TOÁN TÌM KIẾM NHỊ PHÂN A. Kiểm Tra Bài Cũ B. Mục Đích Yêu Cầu C. Nội Dung 2. Xác đònh bài toán : • Input :