Bài 5 tiet 5

12 225 0
Bài 5 tiet 5

Đ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ửùc hieọn thaựng 10 naờm 2010 VD1: Cho d·y sè A cã: 1, 2, 9, 4, 10, 5; k=4 VD2: Cho d·y sè B cã: 1, 2, 4, 5, 9, 12; k=5 Bài toán: Dãy A được xếp thứ tự gồm N số nguyên khác nhau từ a 1 a N ; và số nguyên k. Cần biết có hay không chỉ số i (1 i N) mà a i = k. Nếu có hãy cho biết chỉ số đó. Bài toán trên có gỡ khác so với bài toán tỡm kiếm theo thuật toán tỡm kiếm tuần tự? B I TO N V THU T TO N THUT TON TèM KiM NH PHN Bài toán: Cho dãy A gồm N số nguyên khác nhau và dãy t ng có a 1 a N ; và số nguyên k.Cần biết có hay không chỉ số i (1 i N) mà a i = k. Nếucó hãy cho biết chỉ số đó. Xác định bài toán: Input: Số nguyên dương N, dãy A được sắp xếp tng a 1 a N ; số nguyên k Output: + Chỉ số i khi a i = k + Thông báo không có số nào trong dãy A bằng k Hãy xác định bài toán trên? B I TO N V THU T TO N THUT TON TèM KiM NH PHN Nhận xét: Vỡ dãy A là dãy tng nên sau mỗi lần so sánh với khóa k đã cho ta sẽ thu hẹp được phạm vi tỡm kiếm + Nếu a Giua = k thỡ giua là chỉ số cần tỡm rồi kết thúc thuật toán. + Nếu a Giua > k việc tỡm kiếm chỉ thực hiện trên dãy a 1 , a 2 , a Giua -1 . + Nếu a Giua < k thỡ thực hiện tỡm kiếm trên dãy a Giua + 1 , a Giua + 2 , a N ý tưởng: + Chọn số hạng ở gia dãy a Giua so sánh với k, trong đó Giua = [(N + 1)/2] Quá trỡnh trên sẽ được lặp lại một số lần cho đến khi hoặc đã tỡm thấy khóa k trong dãy A hoặc phạm vi tỡm kiếm bằng rỗng. B I TO N V THU T TO N THUT TON TèM KiM NH PHN L­u ý: chØ sè i, Dau, Cuoi, Giua ®Òu cã gi¸ trÞ nguyªn B I TO N V THU T TO N À Á À Ậ Á THUẬT TOÁN TÌM KiẾM NHỊ PHÂN Diễn tả thuật toán theo cách liệt kê Diễn tả thuật toán theo cách liệt kê - Bước 1: Nhập N, các số hạng a - Bước 1: Nhập N, các số hạng a 1 1 , a , a 2 2 , , a , , a N N và khóa k và khóa k - Bước 2: - Bước 2: Dau Dau 1 , 1 , Cuoi Cuoi N N - Bước 3: - Bước 3: Giua Giua [ [ (Dau + Cuoi ) / 2] (Dau + Cuoi ) / 2] - Bước 4: Nếu a - Bước 4: Nếu a Giua Giua = k th = k th ỡ ỡ thông báo chỉ số Giua rồi kết thúc thông báo chỉ số Giua rồi kết thúc - Bước 5: Nếu a - Bước 5: Nếu a Giua Giua > k th > k th ỡ ỡ đặt đặt Cuoi Cuoi Giua-1 Giua-1 , rồi chuyển đến bước 7 , rồi chuyển đến bước 7 - Bước 6: - Bước 6: Dau Dau Giua+1 Giua+1 ; ; - Bước 7: Nếu - Bước 7: Nếu Dau > Cuoi Dau > Cuoi th th ỡ ỡ thông báo dãy A không có số hạng nào thông báo dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc. có giá trị bằng k, rồi kết thúc. - Bước 8: Quay lại bước 3 - Bước 8: Quay lại bước 3 B I TO N V THU T TO N THUT TON TèM KiM NH PHN Diễn tả thuật toán theo sơ đồ khối Nhập N, dãy a 1 a N , số k Dau 1, Cuoi N Giua [(Dau + Cuoi)/2] a Giua = k ? a Giua > k ? sai đúng đưa ra Giua rồi kết thúc Cuoi Giua - 1 Dau Giua + 1 Dau > Cuoi? đúng sai đúng Dãy A không có số hạng nào bằng k rồi kết thúc sai * Mô phỏng thuật toán tỡm kiếm nhị phân Ví dụ 1: Cho N = 6 và dãy A sắp xếp tng dần: 1, 2, 4, 5 , 9 , 12 ; số k = 5 i i 1 1 2 2 3 3 4 4 5 5 6 6 Dóy A Dóy A 1 1 2 2 4 4 5 5 9 9 12 12 Dau Dau Cuoi Cuoi Giua Giua a a Giua Giua Lần duyệt Lần duyệt Kết luận: ở lần duyệt thứ 3 thỡ a Giua = k = 5. Vậy chỉ số cần tỡm là : i = Giua = 4 * Mô phỏng thuật toán tỡm kiếm nhị phân Ví dụ 1: Cho N = 6 và dãy A sắp xếp tng dần: 1, 2, 4, 5 , 9 , 12 ; số k = 10 i i 1 1 2 2 3 3 4 4 5 5 6 6 Dóy A Dóy A 1 1 2 2 4 4 5 5 9 9 12 12 Dau Dau Cuoi Cuoi Giua Giua a a Giua Giua Lần duyệt Lần duyệt Kết luận: Tại lần duyệt thứ 4 Dau > Cuoi nên kết luận trong dãy A không có số hạng nào có giá trị bằng 10 [...]...Củng cố và hướng dẫn về nhà - Cho N = 6 và dãy A được sắp xếp giảm dần: 12, 9, 5, 4, 2, 1; số k = 4 Mô phỏng thuật toán nhị phân - Chú ý: dãy số sau khi sắp xếp thứ tự, ta dùng thuật toán tim kiếm nhị phân - Hoàn thành các bài tập ở Sgk và một số bài tập ở SBT để chuẩn bị cho giờ bài tập tiết sau Thửùc hieọn thaựng 10 naờm 2010 . 6 và dãy A sắp xếp tng dần: 1, 2, 4, 5 , 9 , 12 ; số k = 5 i i 1 1 2 2 3 3 4 4 5 5 6 6 Dóy A Dóy A 1 1 2 2 4 4 5 5 9 9 12 12 Dau Dau Cuoi Cuoi Giua Giua. naờm 2010 VD1: Cho d·y sè A cã: 1, 2, 9, 4, 10, 5; k=4 VD2: Cho d·y sè B cã: 1, 2, 4, 5, 9, 12; k =5 Bài toán: Dãy A được xếp thứ tự gồm N số nguyên khác

Ngày đăng: 29/09/2013, 00:10

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan