[Cánh diều] Trắc nghiệm Tin học 7 bài 2 Tìm kiếm nhị phân

[Cánh diều] Trắc nghiệm Tin học 7 bài 2 Tìm kiếm nhị phân

1. Giả sử mảng đã sắp xếp là [10, 20, 30, 40, 50]. Tìm kiếm giá trị 60. Phần tử nào sẽ được so sánh ở bước thứ hai nếu 60 không tìm thấy ở bước đầu?
2. Trong tìm kiếm nhị phân, chỉ số giữa (mid) thường được tính như thế nào để tránh tràn số (integer overflow) khi low và high rất lớn?
3. Nếu mảng là [1, 3, 5, 7, 9] và ta tìm kiếm giá trị 4, bước tiếp theo sau khi so sánh với 5 (phần tử giữa) là gì?
4. Trong quá trình tìm kiếm nhị phân, nếu `low` (chỉ số bắt đầu) lớn hơn `high` (chỉ số kết thúc), điều này có nghĩa là gì?
5. Khi tìm kiếm một giá trị nhỏ hơn phần tử đầu tiên trong mảng đã sắp xếp, thuật toán tìm kiếm nhị phân sẽ dừng lại sau bao nhiêu bước (xấp xỉ)?
6. Tìm kiếm tuyến tính (linear search) và tìm kiếm nhị phân (binary search) khác nhau cơ bản nhất ở điểm nào?
7. Tìm kiếm nhị phân có thể áp dụng trực tiếp trên cấu trúc dữ liệu nào sau đây mà không cần chuyển đổi?
8. Nếu mảng tìm kiếm rỗng, kết quả của thuật toán tìm kiếm nhị phân sẽ là gì?
9. Khi tìm kiếm một giá trị lớn hơn tất cả các phần tử trong mảng đã sắp xếp, thuật toán tìm kiếm nhị phân sẽ thực hiện bao nhiêu lần so sánh trong trường hợp xấu nhất?
10. Khi tìm kiếm nhị phân trong một mảng có N phần tử, số lần so sánh lớn nhất mà thuật toán có thể thực hiện là bao nhiêu?
11. Tìm kiếm nhị phân có thể được xem là một dạng của chiến lược chia để trị (divide and conquer) không?
12. Nếu một mảng chứa các phần tử trùng lặp, tìm kiếm nhị phân có đảm bảo tìm thấy phần tử đầu tiên hoặc phần tử cuối cùng của nhóm phần tử trùng lặp đó không?
13. Trong thuật toán tìm kiếm nhị phân, khi nào vòng lặp tìm kiếm sẽ dừng lại?
14. Giả sử bạn có một mảng rất lớn đã sắp xếp và cần tìm kiếm một giá trị. Lựa chọn nào sau đây mô tả cách tìm kiếm nhị phân hoạt động hiệu quả nhất?
15. Khi thực hiện tìm kiếm nhị phân trên mảng có kích thước N, số lượng phần tử được loại bỏ ở mỗi bước là bao nhiêu (xấp xỉ)?
16. Nếu giá trị cần tìm trong tìm kiếm nhị phân nhỏ hơn phần tử ở giữa mảng, bước tiếp theo thuật toán sẽ làm gì?
17. Thuật toán tìm kiếm nhị phân hoạt động dựa trên nguyên tắc nào sau đây?
18. Việc sử dụng tìm kiếm nhị phân có lợi ích gì so với tìm kiếm tuyến tính khi xử lý tập dữ liệu rất lớn?
19. Nếu trong quá trình tìm kiếm nhị phân, giá trị cần tìm bằng với phần tử ở giữa, thuật toán sẽ làm gì tiếp theo?
20. Trong tìm kiếm nhị phân, điều kiện tiên quyết để áp dụng thuật toán là gì?
21. Điểm yếu lớn nhất của tìm kiếm nhị phân so với tìm kiếm tuyến tính là gì?
22. Giả sử có một mảng đã sắp xếp: [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]. Nếu tìm kiếm giá trị 23, bước đầu tiên của tìm kiếm nhị phân sẽ so sánh giá trị nào?
23. Điều gì xảy ra nếu bạn cố gắng áp dụng tìm kiếm nhị phân trên một mảng chưa được sắp xếp?
24. Tìm kiếm nhị phân có thể được áp dụng để tìm phần tử lớn nhất nhỏ hơn hoặc bằng một giá trị cho trước (lower bound) trong một mảng đã sắp xếp không?
25. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân là bao nhiêu?