Thứ sáu, 03/05/2024
IMG-LOGO
Trang chủ Lớp 7 Tin học Giải SBT Tin học 7 CTST Bài 13. Thuật toán tìm kiếm có đáp án

Giải SBT Tin học 7 CTST Bài 13. Thuật toán tìm kiếm có đáp án

Giải SBT Tin học 7 CTST Bài 13. Thuật toán tìm kiếm có đáp án

  • 105 lượt thi

  • 5 câu hỏi

  • 30 phút

Danh sách câu hỏi

Câu 2:

Hãy xác định trong các thao tác dưới đây, thao tác nào là của thuật toán tìm kiếm tuần tự, thao tác nào là của thuật toán tìm kiếm nhị phân bằng cách đánh dấu (ü) vào ô tương ứng.

Media VietJack

Xem đáp án

Trả lời:

- Thuật toán tìm kiếm tuần tự thực hiện so sánh lần lượt từ phần tử đầu tiên của dãy với giá trị cần tìm, việc tìm kiếm kết thúc khi tìm thấy hoặc đã duyệt hết các phần tử trong dãy.

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

+ Áp dụng với dãy giá trị đã được sắp xếp.

+ Ở mỗi lần lặp, thực hiện:

Bước 1. So sánh giá trị cần tìm với giá trị của phần tử giữa dãy đang xét.

Bước 2. Nếu bằng nhau thì thông báo vị trí tìm thấy và kết thúc.

Bước 3. Nếu nhỏ hơn thì xét dãy ở nửa trước, nếu lớn hơn thì xét dãy ở nửa sau.

Bước 4. Nếu dãy rỗng thì thông báo không tìm thấy và kết thúc tìm kiếm, không thì quay lại bước 1.

Bảng kết quả như sau:

Media VietJack


Câu 4:

Theo em, thuật toán tìm kiếm nào trong 2 thuật toán đã học là phù hợp nhất để tìm một số trong dãy số 14, 17, 21, 25, 30, 52, 66? Vì sao em không chọn thuật toán còn lại?

Hãy mô phỏng thuật toán phù hợp nhất đã chọn để tìm số 30 trong dãy số trên bằng cách điền thông tin mỗi lần lặp vào bảng dưới đây.

Lần lặp

Số của dãy được kiểm tra

Đúng số cần tìm

Đã kiểm tra hết số

1

2

Xem đáp án

Trả lời:

Sử dụng thuật toán tìm kiếm nhị phân là phù hợp nhất để tìm một số trong dãy số này vì đây là dãy số sắp xếp tăng dần, số lần lặp phải thực hiện ít hơn hẳn khi sử dụng thuật toán tìm kiếm tuần tự (ta sẽ thấy rõ khi dãy có nhiều phần tử và phần tử này cần tìm cách xa phần tử đầu tiên).

Lần lặp

Số của dãy được kiểm tra

Đúng số cần tìm

Đã kiểm tra hết số

1

25

Sai

Sai

2

52

Sai

Sai

3

30

Đúng

 


Câu 5:

Bạn em có một bộ 20 thẻ số, mỗi thẻ ghi một số khác nhau, được đặt úp trên bàn theo thứ tự giá trị các số tăng dần từ trái sang phải. Bạn đố em lật tìm được đúng một số trong 20 thẻ số đó chỉ với tối đa 5 lần lật. Em có thực hiện được không? Vì sao?
Xem đáp án

Trả lời:

Thực hiện được, vì: Áp dụng thuật toán tìm kiếm nhị phân.

Theo công thức phần nguyên, ta xác định và lật thẻ ở giữa như sau (giả định trường hợp xấu nhất là lần lật cuối cùng mới đúng số cần tìm):

- Lần 1: lật 1 thẻ trong 20 thẻ, ta lật thẻ thứ 10.

- Lần 2: lật 1 thẻ trong 9 thẻ bên trái hoặc trong 10 thẻ bên phải thẻ thứ 10, ta lật thẻ thứ 5 hoặc lật thẻ thứ 15.

Cứ tiếp tục chọn và lật như vậy thì đến lần 5, sẽ chỉ còn 1 số để lật và chắc chắn tìm được một số theo yêu cầu.

Media VietJack


Bắt đầu thi ngay