Trắc nghiệm Kết nối Tin học 11 KHMT bài 20 Thực hành bài toán tìm kiếm

Trắc nghiệm Kết nối Tin học 11 KHMT bài 20 Thực hành bài toán tìm kiếm

1. Độ phức tạp thời gian (time complexity) của thuật toán tìm kiếm tuần tự trên một danh sách không có thứ tự là bao nhiêu trong trường hợp xấu nhất?
2. Ý tưởng cốt lõi của thuật toán tìm kiếm Jump Search là gì?
3. Khi thực hành bài toán tìm kiếm, việc hiểu rõ độ phức tạp của thuật toán giúp chúng ta điều gì?
4. Trong một bài thực hành lập trình, khi viết hàm tìm kiếm, việc sử dụng đệ quy cho tìm kiếm nhị phân có ưu điểm gì so với vòng lặp?
5. Nếu ta cần xây dựng một hệ thống tìm kiếm nhanh cho một cơ sở dữ liệu rất lớn, có thể bao gồm hàng tỷ bản ghi, thì thuật toán tìm kiếm nào là lựa chọn kém hiệu quả nhất?
6. Một trong những ưu điểm chính của việc sử dụng cấu trúc dữ liệu mảng (array) để thực hiện tìm kiếm là gì?
7. Trong quá trình thực hành, nếu gặp lỗi IndexOutOfBoundsException khi truy cập phần tử mảng, nguyên nhân phổ biến nhất là gì?
8. Khi tìm kiếm một phần tử trong danh sách, tại sao việc sử dụng tìm kiếm nhị phân hiệu quả hơn tìm kiếm tuần tự đối với danh sách lớn đã sắp xếp?
9. Trong trường hợp nào thì việc sử dụng thuật toán tìm kiếm tuần tự có thể hợp lý hơn tìm kiếm nhị phân, ngay cả khi danh sách đã sắp xếp?
10. Khi tìm kiếm một giá trị trong danh sách, nếu giá trị đó không tồn tại, thuật toán tìm kiếm tuần tự thường trả về giá trị nào để biểu thị điều này?
11. Nếu một thuật toán tìm kiếm được mô tả là không có thứ tự (unordered), điều này có nghĩa là gì đối với cách hoạt động của nó?
12. Trong bài toán tìm kiếm, ý nghĩa cơ bản của thuật toán tìm kiếm tuần tự (linear search) là gì?
13. Trong ngữ cảnh của bài toán tìm kiếm, thuật ngữ phạm vi tìm kiếm (search space) đề cập đến điều gì?
14. Trong bối cảnh các bài toán tìm kiếm, thuật ngữ tồn tại (existence) của một phần tử thường được hiểu là gì?
15. Nếu một hàm tìm kiếm trả về một giá trị là chỉ số của phần tử được tìm thấy, thì chỉ số (index) này thường bắt đầu từ đâu trong hầu hết các ngôn ngữ lập trình phổ biến (ví dụ: Python, Java, C++)?
16. Khi triển khai tìm kiếm nhị phân trên một danh sách, ta cần quản lý các biến nào để xác định phạm vi tìm kiếm hiện tại?
17. Khi tìm kiếm một giá trị trong một danh sách mà ta biết rằng các giá trị có xu hướng phân bố không đồng đều (ví dụ: nhiều giá trị gần nhau ở đầu và thưa ở cuối), thuật toán nào có thể hiệu quả hơn tìm kiếm nhị phân?
18. Thuật toán tìm kiếm nhị phân (binary search) yêu cầu điều kiện tiên quyết nào đối với danh sách cần tìm kiếm?
19. Giả sử ta có một danh sách các tên học sinh đã được sắp xếp theo thứ tự bảng chữ cái. Nếu muốn tìm tên của một học sinh cụ thể, việc sử dụng tìm kiếm nhị phân có thể loại bỏ bao nhiêu phần trăm dữ liệu không cần thiết sau mỗi lần so sánh?
20. Khái niệm phần tử trung vị (median element) trong thuật toán tìm kiếm nhị phân thường được xác định như thế nào?
21. Trong bài toán thực hành tìm kiếm, nếu ta có một danh sách lớn các số nguyên và cần tìm một số cụ thể một cách nhanh chóng, thuật toán nào thường được ưu tiên hơn nếu danh sách đã được sắp xếp?
22. Trong lập trình, khi triển khai thuật toán tìm kiếm tuần tự, vòng lặp thường được sử dụng để làm gì?
23. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân trên một danh sách đã sắp xếp là bao nhiêu trong trường hợp trung bình và xấu nhất?
24. Trong tìm kiếm nhị phân, sau khi so sánh phần tử giữa với phần tử cần tìm, nếu phần tử giữa lớn hơn phần tử cần tìm, thì bước tiếp theo là gì?
25. Trong bài toán tìm kiếm, khi so sánh hiệu quả giữa tìm kiếm tuần tự và tìm kiếm nhị phân trên một danh sách có 1.000.000 phần tử đã sắp xếp, sự khác biệt về số lần so sánh tối đa là bao nhiêu?