Ví dụ về thuật toán Bài toán tìm kiếm

Một phần của tài liệu Tin 10 (Chuong 1) (Trang 29 - 31)

IV. CỦNG CỐ, ĐÁNH GIÁ CUỐI BÀ

3. Ví dụ về thuật toán Bài toán tìm kiếm

Bài toán tìm kiếm

Cho dãy A gồm N số nguyên a1, a2, ... , aN đã được sắp xếp không giảm 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à khóa tìm kiếm.

Thuật toán tìm kiếm tuần tự

? Hãy xác định Input và Output của bài toán?

- Xác định bài toán:

- Ý tưởng giải thuật:

Lần lượt từ số hạng thứ nhất, so sánh giá trị của số hạng đang xét với khóa cho đến khi gặp 1 số hạng bằng khóa hoặc khi xét hết dãy mà không có giá trị nào bằng khóa.

- Thuật toán:

+ Phương pháp liệt kê:

Bước 1: Nhập N, các số hạng a1, a2, a3, ..., aN và khóa k;

Bước 2: i ←1 ;

Bước 3: Nếu ai = k thì 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 bước 3;

Thuật toán tìm kiếm nhị phân

? Hãy xác định Input và Output của bài toán?

- Xác định bài toán:

- Ý tưởng giải thuật:

+ Chọn agiữa ở giữa dãy số để so sánh với k. giữa =  +2 

1N N

* Nếu agiữa = k thì giữa là chỉ số cần tìm.

HS nghe giảng, ghi chép.

HS lên bảng xác định:

+ Input: Dãy A gồm N số nguyên khác nhau a1, a2, ... , aN

+ Output: Chỉ số i mà ai = k hoặc thông báo không có số hạng nào của dãy có giá trị bằng k.

HS ghi chép, nghe giảng Nhập N, dáy số a1, a2,a3, ..., aNvà k Đưa ra k Rồi kết thúc ag = k ai>ai+1 ? i > M? g ← (d + c)/2 sai Đúng sai Đúng d ← 1, c ← N d←g+1 Đúng sai c ←g -1

* Nếu agiữa>k thì ta chỉ xét khoảng a1, a2, ..., agiữa-1

* Nếu agiữa<k thì ta chỉ xét khoảng ag, ag+1, ..., aN

+ Quá trình này lặp cho đến khi tìm được khóa k hoặc thông báo không có.

- Thuật toán:

+ Phương pháp liệt kê:

Bước 1: Nhập N, các số hạng a1, a2, a3, ..., aN và khóa k; Bước 2: d ←1, c ← N; Bước 3: g ←  +2  1 N ;

Bước 4: Nếu ag = k thì thông báo g rồi kết thúc;

Bước 5: Nếu ag > k thì c ← g – 1 rồi chuyển sang Bước 7;

Bước 6: d ← g + 1;

Bước 7:Nếu d > g 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 8: Quay lại bước 3;

HS ghi chép, nghe giảng

GV yêu cầu HS về nhà xây dựng thuật toán bằng phương pháp sơ đồ khối

IV. CỦNG CỐ, ĐÁNH GIÁ CUỐI BÀI

− Muốn giải một bài toán, trước tiên phải xác định được Input và Output của bài toán: + Input: thông tin đưa vào máy.

+ Output: Thông tin muốn lấy từ máy.

− Học sinh về nhà tiếp tục nghiên cứu phần ví dụ và các phần tiếp thep của bài học.

Ngày 23/10/2008

Tiết: 15 BÀI TẬP

I. MỤC TIÊU

1.Kiến thức:

− Xác định được bài toán, viết được các thuật toán.

2. Kỹ năng:

− Xây dựng được các bài toán đơn giản, các bài toán trong SGK.

3. Thái độ:

− Phát triển tư duy giải các bài toán khác ở các môn học và làm việc theo thuật toán trong các môn học cũng như trong thực tế.

Một phần của tài liệu Tin 10 (Chuong 1) (Trang 29 - 31)

Tải bản đầy đủ (DOC)

(44 trang)
w