[Cánh diều] Trắc nghiệm Tin học 11 KHMT bài 7 Lập trình giải bài toán tìm kiếm

[Cánh diều] Trắc nghiệm Tin học 11 KHMT bài 7 Lập trình giải bài toán tìm kiếm

1. Nếu một danh sách có 1024 phần tử, ước tính số lần so sánh tối đa cần thiết để tìm một phần tử bằng tìm kiếm nhị phân là bao nhiêu?
2. Trong Python, hàm nào sau đây thường được sử dụng để tìm kiếm một phần tử trong danh sách (list) theo cách đơn giản nhất?
3. Trong lập trình, khái niệm trường hợp xấu nhất (worst-case scenario) khi nói về thuật toán tìm kiếm đề cập đến điều gì?
4. Khi so sánh tìm kiếm tuyến tính và tìm kiếm nhị phân, yếu tố nào là khác biệt quan trọng nhất về mặt hiệu suất trên dữ liệu lớn?
5. Một nhà khoa học dữ liệu đang làm việc với một tập dữ liệu lớn chứa thông tin về hàng triệu giao dịch. Họ cần tìm tất cả các giao dịch có giá trị lớn hơn một ngưỡng nhất định. Phương pháp tìm kiếm nào có khả năng hiệu quả nhất cho tác vụ này, nếu dữ liệu có thể được sắp xếp?
6. Khi áp dụng tìm kiếm nhị phân, nếu phần tử cần tìm nhỏ hơn phần tử ở giữa, thì bước tiếp theo là gì?
7. Xét một danh sách các chuỗi chưa được sắp xếp: [apple, banana, cherry, date, fig]. Nếu tìm kiếm chuỗi cherry bằng thuật toán tìm kiếm tuyến tính, trung bình sẽ cần thực hiện bao nhiêu phép so sánh?
8. Xét một danh sách được sắp xếp tăng dần các số nguyên: [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]. Nếu sử dụng thuật toán tìm kiếm nhị phân để tìm số 23, bước đầu tiên sẽ là so sánh 23 với phần tử nào trong danh sách?
9. Phân tích sự khác biệt cơ bản nhất giữa tìm kiếm nhị phân và tìm kiếm nội suy (Interpolation Search) khi áp dụng trên dữ liệu có phân phối đều:
10. Khi một thuật toán tìm kiếm trả về một chỉ số (index) hợp lệ, điều đó có nghĩa là gì?
11. Phát biểu nào sau đây là SAI về thuật toán tìm kiếm trong cấu trúc dữ liệu dạng cây tìm kiếm nhị phân (Binary Search Tree - BST)?
12. Một lập trình viên đang xem xét lại mã nguồn và thấy một vòng lặp duyệt qua từng phần tử của một mảng để kiểm tra một điều kiện. Điều này mô tả hành vi của thuật toán nào?
13. Nếu một hàm tìm kiếm trả về một giá trị đặc biệt (ví dụ: -1 hoặc `None`), điều này thường biểu thị điều gì?
14. Trong các thuật toán tìm kiếm được học, thuật toán nào có khả năng xử lý hiệu quả nhất với một tập dữ liệu rất lớn và đã được sắp xếp mà không cần biết trước vị trí của phần tử cần tìm?
15. Thuật toán tìm kiếm nhị phân yêu cầu điều kiện tiên quyết nào để hoạt động chính xác?
16. Phát biểu nào sau đây mô tả đúng về độ phức tạp thời gian (time complexity) của thuật toán tìm kiếm nhị phân trên một mảng gồm N phần tử đã sắp xếp?
17. Phát biểu nào sau đây mô tả đúng vai trò của index (chỉ số) trong một mảng hoặc danh sách khi thực hiện tìm kiếm?
18. Trong trường hợp tìm kiếm một phần tử không tồn tại trong một danh sách lớn được sắp xếp, thuật toán tìm kiếm nhị phân sẽ thực hiện bao nhiêu bước so với tìm kiếm tuyến tính?
19. Trong lập trình, bài toán tìm kiếm thường đề cập đến việc tìm kiếm một phần tử cụ thể trong một tập hợp dữ liệu. Phát biểu nào sau đây mô tả đúng nhất mục tiêu chính của bài toán tìm kiếm?
20. Trong Python, phương thức `.count()` của danh sách (list) được sử dụng để làm gì?
21. Thuật toán tìm kiếm tuyến tính (hay tìm kiếm tuần tự) hoạt động như thế nào?
22. Khi nào thì việc sử dụng thuật toán tìm kiếm tuyến tính là hợp lý, mặc dù nó không hiệu quả bằng tìm kiếm nhị phân?
23. Xét một danh sách không sắp xếp. Nếu bạn muốn tìm phần tử lớn nhất, phương pháp nào là hiệu quả nhất?
24. Một ứng dụng cần tìm kiếm nhanh chóng các thông tin hồ sơ dựa trên mã số duy nhất. Nếu mã số này được sử dụng làm khóa trong một bảng băm (hash table), thì thời gian tìm kiếm trung bình sẽ là bao nhiêu?
25. Đâu là ưu điểm chính của thuật toán tìm kiếm nhị phân so với tìm kiếm tuyến tính khi áp dụng trên một danh sách lớn đã được sắp xếp?