Tải bản đầy đủ (.ppt) (11 trang)

bai toan tim kiem nhi phan

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.03 MB, 11 trang )

<span class='text_page_counter'>(1)</span>Nguyễn Thị Hà. Đặng Hữu Hoàng.

<span class='text_page_counter'>(2)</span> Tiết 14. Nguyễn Thị Hà. Đặng Hữu Hoàng.

<span class='text_page_counter'>(3)</span> KIỂM TRA BÀI CŨ Trình bày thuật toán tìm kiếm tuần tự * Dạng liệt kê:. * Dạng SĐK: Nh Nhập N và. a11, a22, …ann; k. B1: Nhập N, các số hạng a1, a2 ….. an và khoá k ;. i: =1. B2: i: = 1 ; B3: Nếu ai = k thì thông báo có k trong dãy và đưa ra chỉ số i, rồi kết thúc;. aii = k ?. B4: i: =i +1;. i: = i + 1. Đ. S. B5: Nếu i > N thì thông báo trong không có k dãy, rồi kết thúc. S i> N ?. B6: Quay về bước 3. Đ Thông Thông báo báo không không có có kk trong dãy, rồi kết thúc trong kết thúc. Nguyễn Thị Hà. Có Có kk trong trong dãy dãy và và đưa đưa ra ra chỉ chỉ số số i,i, rồi rồi kết kết thúc thúc.

<span class='text_page_counter'>(4)</span> KIỂM TRA BÀI CŨ Bài 1: Tính f(x) =. x2 nếu x ≥ 0 2x + 1 nếu x<0 * Mô tả thuật toán dạng SĐK:. * Mô tả thuật toán dạng liệt kê:. Nhập x. B1: Nhập N; B2: Nếu x ≥ 0 thì đưa ra f(x) = x2; B3: Nếu x < 0 thì đưa ra f(x) = 2x + 1;. f(x) = 2x + 1. S. x≥0 Đ. B4: Kết thúc;. f(x) = x2. KT. Nguyễn Thị Hà.

<span class='text_page_counter'>(5)</span> 3. MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN VD3: Bài. toán tìm kiếm. Cho dãy A gồm N số nguyên khác nhau: a1, a2, …. aN 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ố đó. Thuật toán tìm kiếm nhị phân ( Binary Search) * Xác định bài toán. Các em hãy nêu cách xác định bài toán ?. - Input: Dãy A là dãy tăng gồm N số nguyên đôi một khác nhau a1, a2,…… cách xác định bài. an và số nguyên k. - Output: + Chỉ số i mà ai = k + Không có k trong dãy.. Nguyễn Thị Hà.

<span class='text_page_counter'>(6)</span> 3. MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN VD3: Bài. toán tìm kiếm. Cho dãy A gồm N số nguyên khác nhau: a1, a2, …. aN 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ố đó.. Thuật toán tìm kiếm nhị phân ( Binary Search) * Ý tưởng. Thế còn ý tưởng là cách thu hẹp phạm vi tìm kiếm. Sử dụng tính chất dãy A làcủa dãythuật tăngtoán ta tim gì cácBằng em? cách chọn số hạng giữa agiua So sánh k với số hạng được chọn. Với agiua = [(N + 1)/ 2] khi đó xảy ra một trong ba trường hợp sau: + Nếu agiua > k thì ta xét việc tìm kiếm trên dãy a1, a2 …. agiua-1 + Nếu agiua = k thì giua là chỉ số cần tìm. Kết thúc quá trình tìm kiếm.. + Nếu agiua < k thì ta xét việc tìm kiếm trên dãy agiua+1, agiua + 2 … aN Nguyễn Thị Hà.

<span class='text_page_counter'>(7)</span> * Thuật toán. Em nào nói giúp - Liệt kê cô có mấy cách biểu diễn thuật B1: Nhập N, các số hạng a1,toán a2 ….. ? an và khoá k ; B2: dau: = 1; cuoi: = N; B3: giua: = [(dau + cuoi)/2]; B4: Nếu agiua = k thì thông báo trong dãy có k và chỉ số là giua, rồi kết thúc; B5: Nếu agiua > k thì đặt cuoi: = giua – 1, rồi chuyển đến B7; B6: dau: = giua + 1; B7: Nếu dau > cuoi thì thông báo trong dãy không có k, rồi kết thúc B8: Quay lại B3;. Nguyễn Thị Hà.

<span class='text_page_counter'>(8)</span> * Thuật toán - Sơ đồ khối. :. Nhập N và a1, a2, …an; k. dau := 1; cuoi := n giua := [(dau + cuoi)/2]. agiua = k ? Đ Đưa ra giua rồi kết thúc. S. agiua > k ?. Đ. cuoi := giua - 1. S. dau := giua + 1. agiua > k ?. S. Đ Dãy A ko có số hạng nào có giá trị bằng k Nguyễn Thị Hà.

<span class='text_page_counter'>(9)</span> * Mô phỏng thuật toán tìm kiếm nhị phân Ta có một dãy A 10 phần tử : 3 7 11 16 18 21 34 42 58 60 và khóa k = 21. i A. 1 3. 2 7. 3 4 5 6 7 8 9 10 11 16 18 21 34 42 58 60. - Lượt thứ nhất: agiua là a5 = 18 < k Nên chúng ta tìm kiếm trong khoảng a6 đến a10 - Lượt thứ hai: agiua là a8 = 42 > k Nên chúng ta tìm kiếm trong khoảng a6 đến a7 - Lượt thứ ba: agiua là a6 = 21 = k Vậy chỉ số cần tìm là i = giua = 6 Nguyễn Thị Hà.

<span class='text_page_counter'>(10)</span> BÀI TẬP VỀ NHÀ Mô phỏng thuật toán tim kiếm nhị phân: với các phần tử và khóa k sau: 1 6 7 10 12 25 35 40 với k = 7 Các em về nhà làm các bài tập 4; 5; 6; 7 trong SGK và các bài 1.42; 1.43; 1.44; 1.45; 1.48; trong SBT. Nguyễn Thị Hà.

<span class='text_page_counter'>(11)</span> Nguyễn Thị Hà.

<span class='text_page_counter'>(12)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×