Thuật toán tìm kiếm

19 655 2
Thuật toán tìm kiếm

Đ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

NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN Hai bạn chó (Bi và Bông) chơi trốn tìm, Bông đã trốn vào một trong những chiếc mũ của ông già Nôen trên. Hãy chỉ ra các cách tìm chiếc mũ mà Bông đang trốn? Cho biết có những cách nào? Bông trốn đâu nhỉ ? C1: Tìm kiếm tuần tự ( mở từng mũ) C2: Do các mũ đã sắp xếp lớn dần, hai mũ đầu nhỏ hơn người của Bông nên chỉ tìm hai mũ sau thôi! 1. Xác định BT 2. ý tưởng 3. Thuật toán Ví dụ NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN Xét bài toán tìm kiếm đơn giản: Cho dãy A gồm N số nguyên khác nhau: a 1 , a 2 , . , a N và một số nguyên k. Cần biết có hay không chỉ số i (1 i N ) mà ai = k. Nếu có hảy cho biết chỉ số đó. Số nguyên K được gọi là khoá tìm kiếm. (gọi tắt là khoá) Làm thế nào để giải được bài toán này nhỉ ? Có 2 cách ư chọn cách nào đây ? Các em cần xây dựng thuật toán tìm kiếm tuần tự để giải bài toán này 1. Xác định BT 2. ý tưởng 3. Thuật toán Ví dụ bACK NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN Chỉ số i mà a i = k (1 i N) hoặc thông báo không có số hạng nào của A bằng k. Dãy A gồm N số nguyên khác nhau a 1 , a 2 , , a N và số nguyên k. INPUT: OUTPUT: 1. Xác định bài toán: 1. Xác định BT 2. ý tưởng 3. Thuật toán Ví dụ NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN 2. ý tưởng: Lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá (k) cho đến khi có sự trùng nhau, nếu đã xét tới số hạng cuối cùng mà không có sự trùng nhau thì có nghĩa là dãy A không có số hạng nào có giá trị bằng k. 1. Xác định BT 2. ý tưởng 3. Thuật toán Ví dụ BTVN NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN Cách 1: Liệt kê các bước Bước 1: Nhập N, các số hạng a 1 , a 2 , , a N và giá trị khoá k; Bước 2: i 1; Bước 3: Nếu a i = k thì thông báo chỉ số i, rồi kết thúc; Bước 4: i i+1; Bước 5: Nếu i > N thì 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; Bước 6: Quay lại B3. 3. Thuật toán: 1. Xác định BT 2. ý tưởng 3. Thuật toán Ví dụ NỘI DUNG Gv: Trần Văn Chính TIÕT CT: 14 BÀI TOÁNTHUẬT TOÁN NhËp N, a 1 , a 2 , ., a N vµ k 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 i ← 1 a i = k ? §­a ra i råi kÕt thóc § S § i ←i + 1 i > N ? S C¸ch 2 VÏ s¬ ®å khèi 321i 13216895A S Mô phỏng thuật toán: K = 8 và dãy 1. X¸c ®Þnh BT 2. ý t­ëng 3. Tht to¸n VÝ dơ NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN 1. XáC ĐịNH BàI TOáN ;, .,, 21 n aaa - Output: Chỉ số i mà ka i = hoặc thông báo là không có số hạng nào của d y A có ã giá trị bằng k. 1. Xác định BT 2. ý tưởng Thảo luận 3. Thuật toán Ví dụ BTVN -Input: Một số nguyên k và d y A là ã d y tăngã gồm N số nguyên đôi một khác nhau: NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN 7 1. Xác định BT 2. ý tưởng Thảo luận 3. Thuật toán Ví dụ BTVN 1 2 3 4 5 6 8 9 Tìm thấy tại vị trí thứ 7 NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN 7 1. Xác định BT 2. ý tưởng Thảo luận 3. Thuật toán Ví dụ BTVN 1 2 3 4 5 6 8 9 Tìm thấy tại vị trí thứ 3 NI DUNG Gv: Tran Vaờn Chớnh TIếT CT: 14 BAỉI TOAN VAỉ THUAT TOAN Do d y A là ã d y tăngã , ta thu hẹp nhanh phạm vi tìm kiếm sau mỗi lần so sánh khoá k với số hạng được chọn. Muốn vậy, ta chọn số hạng a Giữa ở "giữa d y" để so sánh với ã k. Trong đó: Giữa 2. ý tưởng Khi đó, chỉ xảy ra một trong ba trường hợp sau: Nếu a Giữa = k thì Giữa là chỉ số cần tìm. Kết thúc. Nếu a Giữa > k thì tìm kiếm trên d y ã a 1 , a 2 , ., a Giữa - 1 Nếu a Giữa < k thì tìm kiếm trên d y ã a Giữa+1 , a Giữa+2 , ., a N . + = 2 1N 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ã khoá k trong d y A hoặc ã phạm vi tìm kiếm bằng rỗng. (A): a 1 , a 2 , a 3 , a 4 , a 5 , a 6 , a 7 , a 8 , a 9 1. Xác định BT 2. ý tưởng Thảo luận 3. Thuật toán Ví dụ BTVN [...]...  2   BÀI TOÁNTHUẬT TOÁN TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh BT 2 ý t­ëng Th¶o ln TH¶O LN NHãM Yªu cÇu: Dùa theo ý t­ëng cđa tht to¸n t×m kiÕm nhÞ ph©n ®· xÐt, c¸c em h·y tr×nh bµy c¸c b­ íc t×m sè k trong d·y sè A sau: 1, 3, 4, 6, 7, 10, 15 3 Tht to¸n VÝ dơ Nhãm 1: T×m sè k = 6 BTVN Nhãm 2: T×m sè k = 3 Nhãm 3: T×m sè k = 15 Nhãm 4: T×m sè k = 13 Gv: Trần Văn Chính BÀI TOÁNTHUẬT TOÁN TIÕT CT:... t×m kiÕm mµ em ®· ®­ỵc häc? (T×m kiÕm tn tù vµ t×m kiÕm nhÞ ph©n) BÀI TOÁNTHUẬT TOÁN Nhãm 1: T×m sè k = 6 TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh BT 2 ý t­ëng Th¶o ln 3 Tht to¸n VÝ dơ BTVN Gv: Trần Văn Chính (A) Đầu Cuối Giữa aGiữa 1 1 7 4 6 3 4 6 7 10 15 KÕt qu¶: T×m thÊy sè k = 6 t¹i vÞ trÝ thø Gi÷a = 4 trong d·y A BÀI TOÁNTHUẬT TOÁN Nhãm 2: T×m sè k = 3 TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh BT 2 ý t­ëng... t¹i vÞ trÝ thø Gi÷a = 2 trong d·y A Gv: Trần Văn Chính BÀI TOÁNTHUẬT TOÁN Nhãm 3: T×m sè k = 15 TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh BT 2 ý t­ëng Th¶o ln 3 Tht to¸n VÝ dơ BTVN (A) Đầu Cuối Giữa aGiữa 1 3 1 5 7 7 4 6 6 10 4 6 7 10 15 7 7 7 15 KÕt qu¶: T×m thÊy sè k = 15 t¹i vÞ trÝ thø Gi÷a = 7 trong d·y A Gv: Trần Văn Chính BÀI TOÁNTHUẬT TOÁN Nhãm 4: T×m sè k = 13 TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh... §Çu § Ci Gi÷a - 1 §Çu > Ci S § BTVN D·y A kh«ng cã sè h¹ng cã gi¸ trÞ b»ng k §Çu = 1, 5, 7 Gv: Trần Văn Chính KÕt thóc Ci = 8 Gi÷a = 4 , 6, 7 aGi÷a = 6 , 9 , 10 T×m thÊy k t¹i vÞ trÝ thø 7 BÀI TOÁNTHUẬT TOÁN TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh BT 2 ý t­ëng Th¶o ln 3 Tht to¸n BµI TËP VỊ NHµ * Bµi 1: Dïng tht to¸n t×m kiÕm nhÞ ph©n ®Ĩ t×m sè k = 14 trong d·y sè A sau: 1, 3, 5, 7, 9, 10, 12, 14, 16 (N...BÀI TOÁNTHUẬT TOÁN TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh BT 2 ý t­ëng 2 ý t­ëng (A): a1, a2, a3, a4, a5, a6, a7, a8, a9 C©u hái: Lµm thÕ nµo ®Ĩ t×m ®­ỵc sè h¹ng aGi÷a sau mçi lÇn thu hĐp ph¹m vi t×m kiÕm? Th¶o ln 3... Gi÷a [(Đầu + Cuối )/ 2] aGi÷a = k? S § BTVN §­a ra Gi÷a råi kÕt thóc Ci aGi÷a > k? S Gi÷a + 1 §Çu § Gi÷a - 1 §Çu > Ci S § D·y A kh«ng cã Gv: Trần Văn Chính sè h¹ng cã gi¸ trÞ b»ng k KÕt thóc BÀI TOÁNTHUẬT TOÁN TIÕT CT: 14 NỘI DUNG 1 X¸c ®Þnh BT 2 ý t­ëng Th¶o ln 3 Tht to¸n VÝ dơ 3 THT TO¸N (M« t¶ b»ng s¬ ®å khèi) VD: T×m sè k = 10 trong d·y sè A sau: NhËp N vµ a1, a2,…, aN; k 2, 3, 4, 6, 8, 9, 10, . điểm của hai ã thuật toán tìm kiếm mà em đ được học? (ã Tìm kiếm tuần tự và tìm kiếm nhị phân) 1. Xác định BT 2. ý tưởng Thảo luận 3. Thuật toán Ví dụ BTVN. Nhóm 1: Tìm số k = 6. THảO LUậN NHóM Nhóm 2: Tìm số k = 3. Nhóm 3: Tìm số k = 15. Nhóm 4: Tìm số k = 13. Yêu cầu: Dựa theo ý tưởng của thuật toán tìm kiếm

Ngày đăng: 03/08/2013, 01:28

Từ khóa liên quan

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

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

Tài liệu liên quan