Bài này chứa 40 câu trắc nghiệm về Cấu trúc Dữ liệu & Thuật giải. Chúc các bạn may mắn!
Câu hỏi
1. Thuật toán tìm kiếm nào thường sử dụng để tìm kiếm trong danh sách đã sắp xếp?
a) Tìm kiếm tuyến tính
b) Tìm kiếm nhị phân
c) Tìm kiếm sắp xếp
d) Tìm kiếm đồng thuận
2. Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính là gì trong trường hợp xấu nhất?
a) O(1)
b) O(n)
c) O(log n)
d) O(n^2)
3. Thuật toán tìm kiếm nhị phân hoạt động trên danh sách nào?
a) Danh sách đơn liên kết
b) Danh sách đôi liên kết
c) Danh sách đã sắp xếp
d) Danh sách ngẫu nhiên
4.Thuật toán tìm kiếm nhị phân giả định gì về danh sách đầu vào?
a) Danh sách đã sắp xếp theo thứ tự tăng dần
b) Danh sách đã sắp xếp theo thứ tự giảm dần
c) Danh sách không cần sắp xếp
d) Danh sách có phần tử duy nhất
5. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân là gì?
a) O(1)
b) O(n)
c) O(log n)
d) O(n^2)
6. Thuật toán tìm kiếm tuyến tính hoạt động tốt hơn so với thuật toán tìm kiếm nhị phân.
a) Đúng
b) Sai
Câu trả lời: Sai
7. Thuật toán tìm kiếm nhị phân làm gì khi tìm thấy phần tử cần tìm trong danh sách?
a) In ra vị trí của phần tử
b) Trả về giá trị phần tử đó
c) Dừng và kết thúc thuật toán
d) Di chuyển đến phần tử tiếp theo
8. Thuật toán tìm kiếm Fibonacci sử dụng cách tiếp cận nào để tìm kiếm phần tử trong danh sách?
a) Tìm kiếm tuyến tính
b) Tìm kiếm nhị phân
c) Tìm kiếm sắp xếp
d) Tìm kiếm đệ quy
9. Thuật toán tìm kiếm tương tự (similarity search) được sử dụng để làm gì?
a) Tìm kiếm phần tử trùng lặp trong danh sách
b) Tìm kiếm phần tử có đặc điểm tương tự với một phần tử đã cho trong tập dữ liệu
c) Tìm kiếm phần tử theo thứ tự ngẫu nhiên
d) Tìm kiếm phần tử có giá trị lớn nhất trong danh sách
10. Thuật toán tìm kiếm tìm kiếm A (A-star) thường được sử dụng trong ngữ cảnh nào?*
a) Tìm kiếm trong danh sách đã sắp xếp
b) Tìm kiếm đường đi ngắn nhất trong đồ thị
c) Tìm kiếm các phần tử trùng lặp
d) Tìm kiếm theo thứ tự ngẫu nhiên
11. Thuật toán sắp xếp là gì?
a) Là cách sắp xếp tài liệu
b) Là cách sắp xếp các phần tử trong danh sách hoặc mảng
c) Là cách sắp xếp chữ cái trong từ điển
d) Là cách sắp xếp ngày tháng trong lịch
12. Thuật toán sắp xếp nào hoạt động bằng cách so sánh từng cặp phần tử và đổi chỗ nếu cần thiết?
a) Sắp xếp nhanh (Quick Sort)
b) Sắp xếp nổi bọt (Bubble Sort)
c) Sắp xếp chèn (Insertion Sort)
d) Sắp xếp trộn (Merge Sort)
13. Thuật toán sắp xếp nhanh (Quick Sort) dựa trên nguyên tắc gì?
a) Chia để trị (Divide and Conquer)
b) So sánh từng cặp phần tử
c) Sử dụng mảng phụ để sắp xếp
d) Sử dụng hàng đợi ưu tiên
14. Thuật toán sắp xếp chọn (Selection Sort) làm gì trong mỗi bước?
a) Chọn phần tử nhỏ nhất và đưa vào đầu danh sách
b) Chọn phần tử lớn nhất và đưa vào cuối danh sách
c) Chọn phần tử ở giữa danh sách
d) Chọn ngẫu nhiên một phần tử trong danh sách
15. Thuật toán sắp xếp trộn (Merge Sort) hoạt động như thế nào?
a) Chia danh sách thành nhiều danh sách con, sau đó trộn chúng lại
b) So sánh từng cặp phần tử liền kề
c) Đổi chỗ các phần tử để sắp xếp
d) Tìm phần tử trung vị trong danh sách
16. Thuật toán sắp xếp nhanh (Quick Sort) có độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?
a) O(1)
b) O(n)
c) O(log n)
d) O(n^2)
17. Thuật toán sắp xếp Heap Sort là một ví dụ của thuật toán sắp xếp nào?
a) Sắp xếp nhanh (Quick Sort)
b) Sắp xếp nổi bọt (Bubble Sort)
c) Sắp xếp chọn (Selection Sort)
d) Sắp xếp heap (Heap Sort)
18. Thuật toán sắp xếp nổi bọt (Bubble Sort) có độ phức tạp thời gian trong trường hợp tốt nhất là bao nhiêu?
a) O(1)
b) O(n)
c) O(log n)
d) O(n^2)
19. Thuật toán sắp xếp tốc độ (Radix Sort) thường được sử dụng cho loại dữ liệu nào?
a) Dữ liệu số nguyên
b) Dữ liệu văn bản
c) Dữ liệu hình ảnh
d) Dữ liệu âm thanh
20. Thuật toán sắp xếp Shell Sort là một biến thể của thuật toán sắp xếp nào?
a) Sắp xếp nhanh (Quick Sort)
b) Sắp xếp chọn (Selection Sort)
c) Sắp xếp chèn (Insertion Sort)
d) Sắp xếp trộn (Merge Sort)
21. Danh sách liên kết là gì?
a) Danh sách các từ vựng liên quan
b) Danh sách các số nguyên
c) Danh sách dữ liệu được kết nối thông qua các liên kết
d) Danh sách các tên đường
22. Loại danh sách liên kết mà mỗi phần tử chứa một liên kết đến phần tử tiếp theo gọi là gì?
a) Danh sách liên kết đơn (Singly Linked List)
b) Danh sách liên kết đôi (Doubly Linked List)
c) Danh sách liên kết vòng (Circular Linked List)
d) Danh sách liên kết tĩnh (Static Linked List)
23. Trong danh sách liên kết đơn, mỗi phần tử có bao nhiêu liên kết?
a) Không có liên kết
b) Một liên kết đến phần tử trước đó
c) Một liên kết đến phần tử tiếp theo
d) Hai liên kết, một đến phần tử trước đó và một đến phần tử tiếp theo
24. Danh sách liên kết đôi (Doubly Linked List) có bao nhiêu liên kết cho mỗi phần tử?
a) Không có liên kết
b) Một liên kết đến phần tử trước đó và một liên kết đến phần tử tiếp theo
c) Hai liên kết đến phần tử trước đó và hai liên kết đến phần tử tiếp theo
d) Ba liên kết đến phần tử trước đó và ba liên kết đến phần tử tiếp theo
25. Danh sách liên kết vòng (Circular Linked List) khác với danh sách liên kết đơn ở điểm gì?
a) Danh sách liên kết vòng không thể thêm phần tử mới
b) Danh sách liên kết vòng có phần tử đầu cuối không liên kết với nhau
c) Danh sách liên kết vòng có phần tử cuối liên kết với phần tử đầu
d) Danh sách liên kết vòng không thể xóa phần tử
26. Trong danh sách liên kết đơn, để thêm một phần tử mới vào cuối danh sách, ta cần thay đổi liên kết của phần tử nào?
a) Phần tử cuối cùng
b) Phần tử đầu tiên
c) Phần tử giữa danh sách
d) Không cần thay đổi liên kết nào
27. Danh sách liên kết đôi (Doubly Linked List) cho phép thực hiện thao tác nào một cách hiệu quả hơn so với danh sách liên kết đơn?
a) Tìm kiếm phần tử trong danh sách
b) Thêm phần tử vào đầu danh sách
c) Xóa phần tử khỏi danh sách
d) Di chuyển từ phần tử cuối cùng đến phần tử đầu tiên
28. Danh sách liên kết có độ phức tạp thời gian bao nhiêu cho việc tìm kiếm một phần tử trong trường hợp tồi nhất?
a) O(1)
b) O(log n)
c) O(n)
d) O(n^2)
29. Danh sách liên kết có độ phức tạp thời gian bao nhiêu cho việc thêm hoặc xóa một phần tử ở đầu danh sách?
a) O(1)
b) O(log n)
c) O(n)
d) O(n^2)
30. Trong danh sách liên kết, để xóa một phần tử, ta cần biết trước địa chỉ của phần tử đó.
a) Đúng
b) Sai
31. Hàng đợi (queue) là cấu trúc dữ liệu nào?
a) Cấu trúc dữ liệu tập hợp
b) Cấu trúc dữ liệu danh sách
c) Cấu trúc dữ liệu dãy số nguyên
d) Cấu trúc dữ liệu hàng đợi
32. Trong hàng đợi, phần tử nào được xóa đầu tiên?
a) Phần tử đầu danh sách
b) Phần tử cuối danh sách
c) Phần tử ở giữa danh sách
d) Phần tử ngẫu nhiên
33. Trong ngăn xếp (stack), phần tử nào được xóa đầu tiên?
a) Phần tử đầu danh sách
b) Phần tử cuối danh sách
c) Phần tử ở giữa danh sách
d) Phần tử đỉnh (top)
34. Ngăn xếp (stack) là cấu trúc dữ liệu nào?
a) Cấu trúc dữ liệu tập hợp
b) Cấu trúc dữ liệu danh sách
c) Cấu trúc dữ liệu dãy số nguyên
d) Cấu trúc dữ liệu ngăn xếp
35. Hàng đợi hoạt động theo nguyên tắc nào?
a) LIFO (Last-In, First-Out)
b) FIFO (First-In, First-Out)
c) LILO (Last-In, Last-Out)
d) FILO (First-In, Last-Out)
36. Ngăn xếp (stack) hoạt động theo nguyên tắc nào?
a) LIFO (Last-In, First-Out)
b) FIFO (First-In, First-Out)
c) LILO (Last-In, Last-Out)
d) FILO (First-In, Last-Out)
37. Trong hàng đợi, phần tử mới được thêm vào ở đâu?
a) Phía trước danh sách
b) Phía sau danh sách
c) Ở vị trí ngẫu nhiên
d) Ở vị trí giữa danh sách
38. Trong ngăn xếp (stack), phần tử mới được thêm vào ở đâu?
a) Phía trước danh sách
b) Phía sau danh sách
c) Ở vị trí ngẫu nhiên
d) Trên phần tử đỉnh (top)
39. Hàng đợi có thể được triển khai bằng cấu trúc dữ liệu nào sau đây?
a) Mảng (array)
b) Danh sách liên kết đơn (singly linked list)
c) Cả hai
d) Không có cách nào để triển khai hàng đợi
40. Ngăn xếp thường được sử dụng trong trường hợp nào sau đây?
a) Khi cần thực hiện tìm kiếm phần tử trong danh sách
b) Khi cần thực hiện tính toán toán học phức tạp
c) Khi cần thực hiện các thao tác theo nguyên tắc LIFO
d) Khi cần sắp xếp dữ liệu theo thứ tự tăng dần
Lời giải
1B, 2B, 3C, 4A, 5C, 6B, 7A, 8B, 9B, 10B, 11B, 12B, 13A, 14A, 15A, 16D, 17D, 18B, 19A, 20C, 21C, 22A, 23C, 24B, 25C, 26A, 27A, 28C, 29A, 30A, 31D, 32A, 33D, 34D, 35B, 36A, 37B, 38D, 39C, 40C
Một số câu hỏi có thể có nhiều hơn 1 đáp án.
- APA:
Dammio. (2023). 40 câu trắc nghiệm Cấu trúc Dữ liệu & Thuật giải (Phần 1). https://www.dammio.com/2023/09/11/40-cau-trac-nghiem-cau-truc-du-lieu-thuat-giai-phan-1.
- BibTeX:
@misc{dammio,
author = {Dammio},
title = {40 câu trắc nghiệm Cấu trúc Dữ liệu & Thuật giải (Phần 1)},
year = {2023},
url = {https://www.dammio.com/2023/09/11/40-cau-trac-nghiem-cau-truc-du-lieu-thuat-giai-phan-1},
urldate = {2024-12-12}
}