

Bài 20. Thực hành bài toán tìm kiếm trang 67 SBT Tin học 11 Kết nối tri thức với cuộc sống>
Trong các câu lệnh sau, câu lệnh nào được dùng để mở và ghi dữ liệu vào tệp "data.inp"?
Tổng hợp đề thi giữa kì 2 lớp 11 tất cả các môn - Kết nối tri thức
Toán - Văn - Anh - Lí - Hóa - Sinh
20.1
Trong các câu lệnh sau, câu lệnh nào được dùng để mở và ghi dữ liệu vào tệp "data.inp"?
A. F = openRead("data.inp").
C. F = open("data.inp", "w").
B. F = openWrite("data.inp").
D. F = open("data.inp","r").
Lời giải chi tiết:
Đáp án đúng là: C. Câu lệnh mở tệp để ghi dữ liệu trong Python là “open” với tham số “w”.
20.2
Các dữ liệu trong tệp sẽ bị ghi đè trong trường hợp nào sau đây?
A. Tệp được mở với tham số “w”.
B. Tệp được mở với tham số “a”.
C. Kết thúc chương trình mà không có lệnh đóng tệp.
D. Cứ có lệnh mở tệp là các dữ liệu trong tệp có thể bị ghi đè.
Lời giải chi tiết:
Đáp án đúng là: A. Muốn dữ liệu trong tệp không bị ghi đè, chúng ta phải mở tệp với tham số “a”.
20.3
Kiểu dữ liệu nào sau đây có thể áp dụng thuật toán tìm kiếm nhị phân?
A. Dữ liệu đã được sắp xếp.
B. Dữ liệu chưa được sắp xếp.
Lời giải chi tiết:
Đáp án đúng là: A. Để có thể áp dụng thuật toán tìm kiếm nhị phân, yêu cầu dữ liệu đầu vào phải được sắp xếp trước, nếu dữ liệu đầu vào chưa được sắp xếp, chúng ta chỉ có thể áp dụng thuật toán tìm kiếm tuần tự.
20.4
Mô tả nào sau đây là đúng nhất cho thuật toán tìm kiếm tuần tự?
A. Sắp xếp các phần tử trong mảng theo thứ tự, sau đó lần lượt kiểm tra từng phần tử.
B. Sắp xếp các phần tử trong mảng theo thứ tự, chia mảng dữ liệu thành hai nửa. Kiểm tra phần tử ở giữa để xem cần tiếp tục tìm kiếm ở nửa bên trái hay nửa bên phải. Lặp lại các bước trên cho đến khi tìm được phần tử cần tìm.
C. Không cần sắp xếp mảng dữ liệu, lần lượt kiểm tra từng phần tử trong mảng dữ liệu.
D. Không cần sắp xếp mảng dữ liệu. Chia mảng dữ liệu thành hai nửa. Kiểm tra phần tử ở giữa để xem cần tìm kiếm ở nửa bên trái hay nửa bên phải. Lặp lại các bước trên cho đến khi tìm được phần tử cần tìm.
Lời giải chi tiết:
Đáp án đúng là: C. Với thuật toán tìm kiếm tuần tự, chúng ta lần lượt kiểm tra từng phần tử trong mảng dữ liệu mà không cần mảng dữ liệu đã sắp xếp.
20.5
Giả sử cần sử dụng thuật toán tìm kiếm tuần tự để tìm ra số "10" trong dãy số sau:
A= [1, 3, 9, 8, 10, 19, 27, 11, 17].
Hỏi có bao nhiêu phép so sánh cần được thực hiện?
A. 4.
B. 5.
C. 6.
D. 7.
Lời giải chi tiết:
Đáp án đúng là: B. Thuật toán tìm kiếm tuần tự sẽ kiểm tra lần lượt các số 1,3, 9, 8, 10. Đến đây chúng ta đã tìm ra số cần tìm và có thể kết thúc chương trình.
20.6
Giả sử cần sử dụng thuật toán tìm kiếm nhị phân để tìm ra số “10” trong dãy số sau:
A= [1, 3, 10, 12, 14, 15, 16].
Hỏi có bao nhiêu phép so sánh cần được thực hiện?>
A. 2.
B. 3.
C. 4.
D. Thuật toán không tìm thấy số cần tìm.
Lời giải chi tiết:
Đáp án đúng là: B. Thuật toán tìm kiếm nhị phân được thực hiện như sau:
Bước 1: Kiểm tra số chính giữa là số “12”, lớn hơn 10 nên số cần tìm nằm ở nửa trái của dãy. Dãy cần tìm kiếm tiếp là [1, 3, 10].
Bước 2: Kiểm tra số chính giữa của dãy thu gọn là số “3”, nhỏ hơn 10 nên số cần tìm nằm ở nửa phải của dãy. Dãy cần tìm kiếm tiếp là [10].
Bước 3: Kiểm tra số chính giữa của dãy thu gọn là số “10”, bằng 10. Kết luận tìm ra số cần tìm và kết thúc chương trình.
Như vậy, có 3 phép so sánh cần thực hiện.
20.7
Trong các đặc điểm sau đây, đâu là ưu điểm của thuật toán tìm kiếm tuần tự?
A. Không cần sắp xếp trước dữ liệu đầu vào.
B. Có thể hoạt động hiệu quả trên mảng dữ liệu đã sắp xếp có kích thước lớn.
C. Chỉ có thể hoạt động tốt trên mảng dữ liệu đã sắp xếp.
D. Tốc độ tìm kiếm chậm trên mảng dữ liệu có kích thước lớn.
Lời giải chi tiết:
Đáp án đúng là: A. Thuật toán tìm kiếm tuần tự không cần sắp xếp trước dữ liệu đầu vào. Tuy nhiên, nhược điểm của thuật toán tìm kiếm tuần tự là tốc độ tìm kiếm chậm trên tập dữ liệu có kích thước lớn. Với tập dữ liệu có kích thước lớn đã được sắp xếp, thuật toán tìm kiếm nhị phân sẽ có tốc độ tìm kiếm nhanh hơn.
20.8
Viết chương trình tìm số lớn nhất trong dãy số sau:
A= [1, 3, 9, 8, 10, 19, 27, 11, 17].
Lời giải chi tiết:
Chúng ta có thể áp dụng ý tưởng của thuật toán tìm kiếm tuần tự để tìm ra số lớn nhất trong dãy số. Chúng ta lần lượt duyệt từng phần tử trong dãy số và so sánh phần tử này với phần tử lớn nhất hiện tại (phần tử lớn nhất trong các phần tử đã duyệt). Chương trình tìm kiếm phần tử lớn nhất có thể được viết như sau:
20.9
Cho dãy số với các phần tử đã được sắp xếp theo thứ tự tăng dần, trong đó một số phần tử có thể xuất hiện nhiều lần như sau:
A= [1, 1, 3, 3, 3, 10, 10, 12, 14, 14, 14, 15, 16].
Hãy chỉnh sửa thuật toán tìm kiếm nhị phân để tìm kiếm một số và đưa ra vị trí mà số đó xuất hiện lần đầu tiên.
Ví dụ: Nếu số cần tìm là số 3 thì kết luận số 3 có trong dãy, vị trí xuất hiện lần đầu tiên có chỉ số là 2 (phần tử đầu tiên trong dãy có chỉ số là 0). Nếu số cần tìm là số 5 thì kết luận không tồn tại số 5 trong dãy.
Lời giải chi tiết:
Để giải bài toán này, trước hết chúng ta sử dụng thuật toán tìm kiếm nhị phân để tìm ra vị trí mà phần tử cần tìm xuất hiện trong dãy (vị trí này có thể là vị trí đầu tiên, thứ hai hoặc vị trí cuối cùng mà phần tử cần tìm xuất hiện). Sau đó, chúng ta so sánh phần tử vừa tìm được với các phần tử ngay trước nó để tìm ra vị trí đầu tiên phần tử cần tìm xuất hiện.


- Bài 21. Các thuật toán sắp xếp đơn giản trang 69 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 22. Thực hành bài toán sắp xếp trang 70 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 23. Kiểm thử và đánh giá chương trình trang 73 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 24. Đánh giá độ phức tạp thời gian thuật toán trang 75 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 25. Thực hành xác định độ phức tạp thời gian thuật toán trang 77 SBT Tin học 11 Kết nối tri thức với cuộc sống
>> Xem thêm
Các bài khác cùng chuyên mục
- Bài 30. Biên tập phim trang 80 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 29. Khám phá phần mềm làm phim trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 28. Tạo ảnh động trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 27. Công cụ vẽ và một số ứng dụng trang 75 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 26. Phương pháp làm mịn dần trong thiết kế chương trình trang 79 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 30. Biên tập phim trang 80 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 29. Khám phá phần mềm làm phim trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 28. Tạo ảnh động trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 27. Công cụ vẽ và một số ứng dụng trang 75 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 26. Phương pháp làm mịn dần trong thiết kế chương trình trang 79 SBT Tin học 11 Kết nối tri thức với cuộc sống