1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIM KIEM NHI PHAN

13 4 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 5,02 MB

Nội dung

2/ yCho daõbaø yA 3 6ng7cuû9a 11 20kieá vaømktuaà = 18 Trả lờ : Laà n tlượ t so saùntính h từchấ ng tsoágì?haïng trong daõy A a.Haõ y icho bieá daõy A coù với khóa cần tìm cho đến khi ho[r]

(1)BÀI TOÁN TÌM KIẾM NHỊ PHÂN (2) KIỂM TRA BÀI CŨ 1/ Haõ trình y ý= tưở baøi14 toá18 n tìm n tự? 2/ yCho daõbaø yA 6ng7cuû9a 11 20kieá vaømktuaà = 18 Trả lờ : Laà n tlượ t so saùntính h từchấ ng tsoágì?haïng daõy A a.Haõ y icho bieá daõy A coù với khóa cần tìm tìm thấy số b.Máy tính thực đến lần thứ thì tìm thấy hạng khóa dãy đã xét hết và không có giá k dãy A? trò naøo baèng khoùa Trả lời : Dãy A là dãy có thứ tự không giảm Trả lời : Đến lần thứ thì tìm k dãy A (3) MỤC ĐÍCH: •Bieát bài toán có thể giải nhiều thuật toán khác •Hieåu phaân •Bieát ý tưởng bài toán tìm kiếm nhị trình bày thuật toán theo hai cách liệt kê và sơ đồ khối (4) NỘI DUNG 1.Cho ví dụ: - Giaû sử, có bìa kẽ các ô vuông trên hai mặt bìa và đánh số thứ tự trên mặt Mặt còn lại tiến hành điền vào các giá trị số khác theo thứ tự từ nhỏ đến lớn,theo chiều từ trái sang phải Maët : Maët : 14 23 35 38 96 - Coù hai học sinh đố Làm cách nào để cắt ô vuông có giá trị bất kỳ, cho số lần cắt là ít (với điều kiện là học sinh cắt bìa không nhìn thấy giá trị các số ghi treân moãi oâ vuoâng) Giả sử cần cắt ô vuông có giá trị là : 23 (5)  Hoïc sinh : Hoïc sinh : 14 23 38 96 35 Kieåm tra oâ vuoâng coù giaù trò caàn caét  Hoïc sinh : Hoïc sinh : 23 35 38 Kieåm tra oâ vuoâng coù giaù trò caàn caét Hoïc sinh : Hoïc sinh : 23 96 (6) 2.Xác định bài toán: •Input : Daõy A laø daõy taêng goàm N soá nguyeân khaùc a1, a2, , aN vaø moät soá nguyeân k •Output : Chỉ số i mà = k thông báo không tìm thấy k daõy A (7) Ý 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ìm kiếm thu hẹp sau lần so sánh khóa với số hạng chọn  Ta chọn số hạng aGiữa để so sánh với k, đó: Giua = [(N + 1) / 2] • Nếu aGiữa = k thì đưa Giua, kết thúc • Nếu aGiữa > k thì phạm vi tìm kiếm thu hẹp lại trên dãy đầu so với dãy ban đầu • Nếu aGiữa < k thì phạm vi tìm kiếm thu hẹp lại trên dãy sau so với dãy ban đầu (8) Thuật toán – Liệt kê Bước 1: Nhaäp N, caùc soá haïng a1, a2, , aN vaø khoùa k Bước 2: Dau  , Cuoi  N Bước 3: Giua  [(Dau+Cuoi)/2] Bước 4: Neáu aGiua = k thì thoâng baùo chæ soá Giua, roài keát thuùc Bước 5: Nếu aGiua > k thì Cuoi = Giua - 1, chuyển đến bước Bước 6: Dau  Giua + Bước 7: Neáu Dau > Cuoi thì thoâng baùo daõy A khoâng coù soá haïng coù giaù trò baèng k, roài keát thuùc Bước 8: Quay lại bước (9) Thuật toán – Sơ đồ khối Nhaäp N; daõy a1, ,aN ;k Dau  ; Cuoi  N Giua  [ (Dau + Cuoi)/2 ] Ñöa vò trí Giua, roài keát thuùc Đ aGiua = k? S aGiua >k? Đ Cuoi  Giua -1 S Dau  Giua + Thoâng baùo K khoâng coù daõy soá A , roài keát thuùc Dau >Cuoi? Đ S (10) Ví dụ: N=10 K=21 i 10 A 21 22 30 31 33 Dau 6 Cuoi 10 Giua 10 aGiua 30 21 Lần duyệt Ờ lần duyệt thì a giua=k  i=Giua=6 (11) TỔNG KẾT 1/ Haõ2/y Haõ choy bieá t ñieà kiện cầnthự phải cónđể thể sử duïng so saù nhyuthờ giữcó a thuaä 3/ Cho daõ A =i gian 9c hieä 11 14 18 20 t toán thuật toántìm tìmkieá kieám mtuaà nhònphaâ n ?tìm kieám nhò phaân tự và a)Hãy mô việc thực tìm kiếm nhị phân, với DãThờ y đãi gian cho phaû moä dãy cómthứ tự t toán nhị thựiclàhiệ nattìm khoù caànkieá tìm kcuû = a6 thuaä ? phân nhanh thuật toán tuần tự, hạn chế b)Haõ moâsoáphoû c pthự c nhieä tìm m nhò phaâ đángykể lượnnggviệ pheù toá sonsaù nhkieá thuaä t n, với khoùa caàn tìm k = 15 ? toán (12) DẶN DÒ Làm bt 5, 6, sgk trang 44 Chuẩn bị trước bài 5: Ngôn ngữ lập trình (13) (14)

Ngày đăng: 18/06/2021, 06:29

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w