1. Tìm kiếm tuần tự có thể được xem là một thuật toán ổn định (stable) trong việc giữ nguyên thứ tự tương đối của các phần tử bằng nhau không?
A. Có, vì nó duyệt theo thứ tự.
B. Không, vì nó chỉ tìm phần tử đầu tiên.
C. Có, nếu danh sách ban đầu đã ổn định.
D. Không, vì nó có thể bỏ qua các phần tử trùng lặp.
2. Trong ví dụ sau: `for i in range(len(my_list)): if my_list[i] == target: return i`, đây là biểu hiện của thuật toán nào?
A. Tìm kiếm nhị phân.
B. Tìm kiếm tuần tự.
C. Sắp xếp nổi bọt.
D. Đệ quy.
3. Trong trường hợp tốt nhất của tìm kiếm tuần tự, khi phần tử cần tìm nằm ở vị trí đầu tiên, số lượng phép so sánh là bao nhiêu?
4. Thuật toán tìm kiếm tuần tự có hiệu quả nhất khi nào?
A. Khi danh sách rất lớn và đã được sắp xếp.
B. Khi danh sách nhỏ hoặc chưa được sắp xếp, hoặc khi phần tử cần tìm nằm ở đầu danh sách.
C. Khi cần tìm kiếm nhiều phần tử cùng lúc.
D. Khi chỉ tìm kiếm một lần duy nhất.
5. Khi phần tử cần tìm xuất hiện nhiều lần trong danh sách, thuật toán tìm kiếm tuần tự thông thường sẽ trả về:
A. Vị trí của tất cả các lần xuất hiện.
B. Vị trí của lần xuất hiện cuối cùng.
C. Vị trí của lần xuất hiện đầu tiên.
D. Số lượng các lần xuất hiện.
6. Khi tìm kiếm một phần tử không có trong danh sách bằng thuật toán tìm kiếm tuần tự, thuật toán sẽ thực hiện hành động nào?
A. Dừng ngay lập tức khi gặp phần tử đầu tiên khác với phần tử cần tìm.
B. Tiếp tục duyệt cho đến hết danh sách và thông báo phần tử không tìm thấy.
C. Trả về vị trí của phần tử đầu tiên trong danh sách.
D. Báo lỗi và dừng chương trình.
7. Nếu mục tiêu là tìm kiếm một phần tử trong danh sách lớn và hiệu suất là yếu tố quan trọng nhất, bạn có nên ưu tiên tìm kiếm tuần tự không?
A. Có, vì nó đơn giản và dễ cài đặt.
B. Không, trừ khi danh sách chưa được sắp xếp và không thể sắp xếp.
C. Có, vì nó luôn nhanh hơn các thuật toán khác.
D. Không, vì nó luôn chậm hơn các thuật toán khác.
8. Cấu trúc dữ liệu nào phù hợp nhất để áp dụng thuật toán tìm kiếm tuần tự một cách trực tiếp?
A. Cây nhị phân tìm kiếm.
B. Mảng hoặc danh sách liên kết.
C. Ngăn xếp (Stack).
D. Hàng đợi (Queue).
9. Nếu một bài toán yêu cầu kiểm tra xem một giá trị có tồn tại trong một tập hợp các mục hay không, và thứ tự của các mục đó không quan trọng hoặc không được đảm bảo, thì thuật toán nào có thể được xem xét đầu tiên?
A. Tìm kiếm nhị phân.
B. Tìm kiếm tuần tự.
C. Sắp xếp nhanh (Quicksort).
D. Biểu đồ tần suất.
10. Tìm kiếm tuần tự có thể được áp dụng cho dữ liệu có cấu trúc nào sau đây?
A. Chỉ các danh sách đã được sắp xếp.
B. Chỉ các cấu trúc dữ liệu có thể lặp qua tuần tự.
C. Chỉ các cấu trúc dữ liệu có kích thước cố định.
D. Chỉ các cấu trúc dữ liệu có phần tử duy nhất.
11. Nếu bạn đang tìm kiếm một chuỗi con (substring) trong một chuỗi lớn bằng phương pháp tương tự tìm kiếm tuần tự, bạn sẽ bắt đầu so sánh chuỗi con từ vị trí nào của chuỗi lớn?
A. Chỉ từ vị trí cuối cùng.
B. Từ vị trí đầu tiên của chuỗi lớn và di chuyển dần sang phải.
C. Từ vị trí ngẫu nhiên.
D. Từ vị trí có ký tự trùng khớp đầu tiên.
12. Giả sử bạn có danh sách [5, 12, 8, 20, 15] và bạn đang tìm kiếm số 8 bằng thuật toán tìm kiếm tuần tự. Bạn sẽ so sánh số 8 với bao nhiêu phần tử trước khi tìm thấy nó?
13. Khi áp dụng tìm kiếm tuần tự trên một danh sách đã sắp xếp, nếu phần tử cần tìm lớn hơn phần tử hiện tại đang xét, thuật toán sẽ làm gì tiếp theo?
A. Dừng tìm kiếm và thông báo không tìm thấy.
B. Kiểm tra lại phần tử trước đó.
C. Tiếp tục duyệt đến phần tử tiếp theo.
D. Sắp xếp lại danh sách.
14. Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự trong trường hợp xấu nhất là bao nhiêu?
A. O(1)
B. O(log n)
C. O(n)
D. O(n^2)
15. Khi sử dụng tìm kiếm tuần tự, nếu danh sách chứa các kiểu dữ liệu khác nhau, điều gì có thể xảy ra khi so sánh?
A. Quá trình tìm kiếm sẽ nhanh hơn.
B. Có thể xảy ra lỗi so sánh hoặc kết quả không mong muốn.
C. Thuật toán tự động chuyển đổi kiểu dữ liệu.
D. Chỉ các phần tử cùng kiểu dữ liệu mới được so sánh.
16. Trong thuật toán tìm kiếm tuần tự, nếu phần tử cần tìm là target và danh sách là data, điều kiện dừng phổ biến nhất khi tìm thấy là gì?
A. Khi phần tử hiện tại lớn hơn target.
B. Khi phần tử hiện tại bằng target.
C. Khi đã duyệt hết danh sách.
D. Khi chỉ số hiện tại lớn hơn kích thước danh sách.
17. Trong lập trình, khi thực hiện tìm kiếm tuần tự, cách phổ biến để theo dõi vị trí của phần tử đang xét là sử dụng:
A. Biến đếm thời gian.
B. Biến chỉ mục (index) hoặc con trỏ.
C. Biến lưu trữ giá trị lớn nhất.
D. Biến lưu trữ tổng các phần tử.
18. Phát biểu nào sau đây mô tả đúng nhất cách thức hoạt động của tìm kiếm tuần tự?
A. Chia đôi danh sách và kiểm tra phần tử ở giữa.
B. Duyệt qua từng phần tử của danh sách theo thứ tự từ đầu đến cuối.
C. So sánh phần tử cần tìm với phần tử lớn nhất và nhỏ nhất.
D. Sử dụng một công thức toán học để tính trực tiếp vị trí phần tử.
19. Thuật toán tìm kiếm tuần tự có nhược điểm gì khi so sánh với các thuật toán tìm kiếm khác trên danh sách lớn đã sắp xếp?
A. Nó yêu cầu nhiều bộ nhớ hơn.
B. Nó chậm hơn đáng kể vì phải duyệt qua nhiều phần tử.
C. Nó không thể xử lý được các phần tử trùng lặp.
D. Nó chỉ hoạt động với các số nguyên.
20. Nếu bạn muốn tối ưu hóa việc tìm kiếm tuần tự khi phần tử cần tìm có khả năng xuất hiện ở cuối danh sách, bạn nên làm gì?
A. Sắp xếp danh sách theo thứ tự giảm dần.
B. Sắp xếp danh sách theo thứ tự tăng dần.
C. Đảo ngược thứ tự của danh sách.
D. Không có cách nào để tối ưu hóa trong trường hợp này.
21. Nếu một thuật toán tìm kiếm cần truy cập ngẫu nhiên vào bất kỳ phần tử nào của danh sách mà không cần duyệt qua các phần tử trước đó, thì thuật toán đó KHÔNG PHẢI là tìm kiếm tuần tự.
A. Đúng, vì tìm kiếm tuần tự yêu cầu duyệt tuần tự.
B. Sai, vì tìm kiếm tuần tự có thể truy cập ngẫu nhiên.
C. Đúng, vì các thuật toán hiệu quả hơn thường có truy cập ngẫu nhiên.
D. Sai, vì tất cả các thuật toán tìm kiếm đều truy cập ngẫu nhiên.
22. Khi thực hiện tìm kiếm tuần tự trên một danh sách có N phần tử, số lượng phép so sánh tối đa có thể xảy ra là bao nhiêu?
23. Trong ngữ cảnh của thuật toán tìm kiếm tuần tự, linear scan có nghĩa là gì?
A. Quét qua dữ liệu theo đường xoắn ốc.
B. Quét qua dữ liệu theo một đường thẳng, lần lượt từng phần tử.
C. Quét qua dữ liệu theo đường zig-zag.
D. Quét qua dữ liệu theo thứ tự ngẫu nhiên.
24. Trong thuật toán tìm kiếm tuần tự, mục đích chính của việc duyệt qua từng phần tử của danh sách là gì?
A. Để sắp xếp lại danh sách theo thứ tự tăng dần.
B. Để xác định vị trí của phần tử cần tìm hoặc xác nhận nó không tồn tại.
C. Để tính tổng của tất cả các phần tử trong danh sách.
D. Để loại bỏ các phần tử trùng lặp trong danh sách.
25. Tìm kiếm tuần tự có thể được coi là một dạng của brute-force search (tìm kiếm vét cạn) không?
A. Không, vì nó chỉ kiểm tra một phần của dữ liệu.
B. Có, vì nó kiểm tra mọi khả năng một cách có hệ thống.
C. Không, vì nó yêu cầu dữ liệu được sắp xếp.
D. Có, nhưng chỉ khi dữ liệu rất nhỏ.