Trắc Nghiệm Kỹ Thuật & Công Nghệ
Trắc nghiệm Cấu trúc dữ liệu và giải thuật online có đáp án
Lưu ý và Miễn trừ trách nhiệm:Toàn bộ nội dung câu hỏi, đáp án và thông tin được cung cấp trên website này được xây dựng nhằm mục đích tham khảo, hỗ trợ ôn tập và củng cố kiến thức. Chúng tôi không cam kết về tính chính xác tuyệt đối, tính cập nhật hay độ tin cậy hoàn toàn của các dữ liệu này. Nội dung tại đây KHÔNG PHẢI LÀ ĐỀ THI CHÍNH THỨC của bất kỳ tổ chức giáo dục, trường đại học hay cơ quan cấp chứng chỉ nào. Người sử dụng tự chịu trách nhiệm khi sử dụng các thông tin này vào mục đích học tập, nghiên cứu hoặc áp dụng vào thực tiễn. Chúng tôi không chịu trách nhiệm pháp lý đối với bất kỳ sai sót, thiệt hại hoặc hậu quả nào phát sinh từ việc sử dụng thông tin trên website này.
Hãy cùng khám phá bộ Trắc nghiệm Cấu trúc dữ liệu và giải thuật online có đáp án. Nội dung câu hỏi được xây dựng nhằm hỗ trợ bạn ôn tập và ghi nhớ hiệu quả. Chỉ cần bấm vào phần trắc nghiệm bạn quan tâm để làm bài ngay. Hy vọng bạn có trải nghiệm học tập hiệu quả và thú vị
1. Độ phức tạp thời gian của thao tác tìm kiếm trong một cây tìm kiếm nhị phân cân bằng (ví dụ: cây AVL, cây đỏ-đen) là bao nhiêu?
2. Thuật toán tìm kiếm nào sau đây yêu cầu dữ liệu phải được sắp xếp trước?
3. Độ phức tạp thời gian trung bình của thuật toán Quick Sort là O(n log n), nhưng trong trường hợp xấu nhất, độ phức tạp là bao nhiêu?
4. Trong cấu trúc dữ liệu đồ thị (graph), điều gì mô tả mối quan hệ ‘kề nhau’ giữa hai đỉnh?
5. Trong một cây quyết định (decision tree), điều gì đại diện cho một nút lá?
6. Ưu điểm chính của việc sử dụng danh sách liên kết (linked list) so với mảng (array) là gì?
7. Thuật toán Dijkstra được sử dụng để giải quyết vấn đề gì?
8. Cấu trúc dữ liệu nào sau đây thường được sử dụng để biểu diễn mối quan hệ ‘cha-con’ trong một hệ thống phân cấp?
9. Cấu trúc dữ liệu nào sau đây phù hợp nhất để triển khai thuật toán Breadth-First Search (BFS)?
10. Phương pháp lập trình động (dynamic programming) thường được sử dụng để giải quyết các bài toán nào?
11. Độ phức tạp không gian của thuật toán Merge Sort là bao nhiêu?
12. Thuật toán nào sau đây là một ví dụ của thuật toán chia để trị (divide and conquer)?
13. Điều gì là quan trọng nhất khi chọn một cấu trúc dữ liệu cho một ứng dụng cụ thể?
14. Cấu trúc dữ liệu nào sau đây là một ví dụ của cấu trúc dữ liệu tuyến tính (linear data structure)?
15. Phương pháp nào sau đây được sử dụng để giải quyết xung đột (collision) trong bảng băm (hash table)?
16. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai undo/redo functionality trong các ứng dụng?
17. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai hàng đợi ưu tiên (priority queue)?
18. Độ phức tạp thời gian tốt nhất của thuật toán Insertion Sort là bao nhiêu?
19. Khái niệm ‘backtracking’ thường được sử dụng trong thuật toán nào?
20. Trong một bảng băm, ‘hàm băm’ (hash function) có vai trò gì?
21. Cấu trúc dữ liệu nào sau đây phù hợp nhất để kiểm tra xem một dấu ngoặc đơn (parentheses) có được cân bằng đúng cách hay không?
22. Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(1)?
23. Điều gì xảy ra khi bạn cố gắng lấy một phần tử từ một stack rỗng?
24. Cấu trúc dữ liệu nào sau đây cho phép truy cập ngẫu nhiên đến các phần tử?
25. Thuật toán Kruskal được sử dụng để giải quyết vấn đề gì?
26. Cây nào sau đây đảm bảo thời gian tìm kiếm, chèn và xóa là O(log n) trong trường hợp xấu nhất?
27. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình là O(n log n)?
28. Trong lý thuyết đồ thị, chu trình Euler là gì?
29. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
30. Trong một cây tìm kiếm nhị phân (BST), điều kiện nào sau đây luôn đúng?
31. Khi nào nên sử dụng cấu trúc dữ liệu queue (hàng đợi) thay vì stack (ngăn xếp)?
32. Cấu trúc dữ liệu nào sau đây thích hợp nhất để biểu diễn mối quan hệ phân cấp, chẳng hạn như cấu trúc thư mục trong hệ điều hành?
33. Trong cấu trúc dữ liệu đồ thị, thuật toán nào sau đây được sử dụng để tìm cây khung nhỏ nhất (minimum spanning tree)?
34. Độ phức tạp thời gian tốt nhất để tìm kiếm một phần tử trong một mảng đã được sắp xếp là:
35. Phương pháp tiếp cận ‘chia để trị’ (divide and conquer) thường được sử dụng trong thuật toán nào sau đây?
36. Heap (cấu trúc dữ liệu heap) thường được sử dụng để triển khai cấu trúc dữ liệu nào?
37. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai chức năng ‘undo’ trong các ứng dụng?
38. Thuật toán sắp xếp nào sau đây hoạt động bằng cách liên tục tìm phần tử nhỏ nhất từ phần chưa được sắp xếp và đặt nó vào đầu phần đã được sắp xếp?
39. Trong cấu trúc dữ liệu đồ thị, ma trận kề (adjacency matrix) phù hợp nhất cho loại đồ thị nào?
40. Phương pháp tiếp cận ‘tham lam’ (greedy approach) thường được sử dụng trong bài toán nào sau đây?
41. Hash table (bảng băm) giải quyết vấn đề xung đột (collision) bằng cách nào?
42. Giải thuật sắp xếp nào sau đây là một giải thuật không so sánh (non-comparison sort)?
43. Khi nào nên sử dụng thuật toán sắp xếp chèn (insertion sort) thay vì các thuật toán sắp xếp phức tạp hơn như merge sort hoặc quicksort?
44. Ưu điểm chính của việc sử dụng danh sách liên kết (linked list) so với mảng (array) là gì?
45. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
46. Cấu trúc dữ liệu nào sau đây cho phép chèn và xóa ở cả hai đầu?
47. Trong thuật toán Prim, cấu trúc dữ liệu nào sau đây thường được sử dụng để chọn cạnh có trọng số nhỏ nhất để thêm vào cây khung?
48. Cây tìm kiếm nhị phân tự cân bằng (self-balancing binary search tree) giải quyết vấn đề gì của cây tìm kiếm nhị phân thông thường?
49. Cấu trúc dữ liệu nào sau đây cho phép truy cập phần tử đầu tiên và phần tử cuối cùng trong thời gian O(1)?
50. Cây nào sau đây đảm bảo thời gian tìm kiếm, chèn và xóa là O(log n) trong trường hợp xấu nhất?
51. Ưu điểm của việc sử dụng đồ thị (graph) thay vì cây (tree) để mô hình hóa dữ liệu là gì?
52. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân (binary search) trong trường hợp tốt nhất là:
53. Cho một mảng đã sắp xếp, thuật toán nào có thể xác định nhanh nhất số lần một giá trị cụ thể xuất hiện?
54. Thuật toán nào sau đây có thể được sử dụng để phát hiện chu trình trong một đồ thị có hướng?
55. Trong cây tìm kiếm nhị phân (binary search tree), thao tác nào sau đây có độ phức tạp thời gian trung bình là O(log n)?
56. Thuật toán sắp xếp nào sau đây có độ phức tạp trung bình là O(n log n)?
57. Trong thuật toán Dijkstra, cấu trúc dữ liệu nào thường được sử dụng để lưu trữ khoảng cách từ đỉnh nguồn đến các đỉnh khác?
58. Giải thuật nào sau đây thường được sử dụng để tìm đường đi ngắn nhất giữa hai đỉnh trong một đồ thị có trọng số không âm?
59. Thuật toán nào sau đây được sử dụng để tìm kiếm theo chiều rộng trên đồ thị?
60. Độ phức tạp thời gian của thao tác chèn vào một hash table (bảng băm) trong trường hợp trung bình là:
61. Độ phức tạp thời gian để tìm kiếm một phần tử trong danh sách liên kết đơn chưa được sắp xếp là bao nhiêu?
62. Cấu trúc dữ liệu nào sau đây thường được sử dụng để biểu diễn mối quan hệ phân cấp (hierarchical relationship)?
63. Thuật toán nào sau đây được sử dụng để tìm kiếm một mẫu (pattern) trong một chuỗi (string)?
64. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai undo/redo functionality trong các ứng dụng?
65. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình là O(n log n)?
66. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai hàng đợi ưu tiên (priority queue)?
67. Độ phức tạp thời gian của thao tác chèn một phần tử vào đầu một danh sách liên kết đơn (singly linked list) là bao nhiêu?
68. Cấu trúc dữ liệu nào sau đây cho phép truy cập ngẫu nhiên (random access) đến các phần tử?
69. Độ phức tạp thời gian để tìm phần tử lớn thứ k trong một mảng chưa được sắp xếp là bao nhiêu nếu sử dụng thuật toán QuickSelect?
70. Thuật toán nào sau đây thường được sử dụng để tìm đường đi ngắn nhất giữa hai đỉnh trong một đồ thị có trọng số không âm?
71. Trong cấu trúc dữ liệu đồ thị, một chu trình (cycle) là gì?
72. Thuật toán nào sau đây được sử dụng để tìm cây bao trùm tối thiểu (minimum spanning tree) bằng cách bắt đầu từ một đỉnh và mở rộng cây dần dần?
73. Cấu trúc dữ liệu nào sau đây cho phép cả chèn và xóa phần tử ở cả hai đầu?
74. Trong lập trình động (dynamic programming), kỹ thuật nào sau đây giúp tránh tính toán lại các bài toán con đã được giải?
75. Trong cây nhị phân, nút nào không có nút con được gọi là gì?
76. Thuật toán nào sau đây được sử dụng để tìm kiếm đường đi ngắn nhất từ một đỉnh nguồn đến tất cả các đỉnh khác trong một đồ thị có trọng số âm?
77. Thuật toán nào sau đây thường được sử dụng để nén dữ liệu không mất mát (lossless data compression)?
78. Phương pháp nào sau đây được sử dụng để giải quyết xung đột trong bảng băm (hash table)?
79. Cấu trúc dữ liệu nào sau đây thường được sử dụng để quản lý các tiến trình (processes) trong hệ điều hành?
80. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai thuật toán tìm kiếm theo chiều rộng (BFS)?
81. Trong đồ thị, thuật toán nào sau đây được sử dụng để kiểm tra xem một đồ thị có phải là đồ thị có chu trình hay không?
82. Độ phức tạp thời gian để chèn một phần tử vào một bảng băm (hash table) với giải quyết xung đột bằng chaining là bao nhiêu trong trường hợp xấu nhất?
83. Độ phức tạp thời gian tốt nhất cho tìm kiếm một phần tử trong một mảng đã được sắp xếp bằng thuật toán tìm kiếm nhị phân là bao nhiêu?
84. Độ phức tạp thời gian của thao tác xóa một phần tử ở cuối một mảng là bao nhiêu?
85. Trong cây nhị phân tìm kiếm (Binary Search Tree), thao tác nào sau đây cho phép duyệt các nút theo thứ tự tăng dần?
86. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
87. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian xấu nhất là O(n^2)?
88. Độ phức tạp thời gian của thao tác tìm kiếm trong một bảng băm (hash table) với giải quyết xung đột hoàn hảo (perfect hashing) là bao nhiêu?
89. Trong cấu trúc dữ liệu đồ thị, thuật toán nào sau đây được sử dụng để tìm cây bao trùm tối thiểu (minimum spanning tree)?
90. Trong cây nhị phân tìm kiếm, thao tác nào sau đây có độ phức tạp thời gian trung bình là O(log n)?
91. Ưu điểm chính của việc sử dụng đồ thị (graph) so với cây (tree) là gì?
92. Khi nào nên sử dụng thuật toán Quick Sort thay vì Merge Sort?
93. Thuật toán sắp xếp nào có độ phức tạp thời gian trung bình là O(n log n) và hoạt động tốt nhất trên các tập dữ liệu lớn?
94. Thuật toán nào sau đây là một thuật toán tham lam (greedy algorithm)?
95. Cây khung nhỏ nhất (Minimum Spanning Tree) của một đồ thị liên thông có trọng số là gì?
96. Độ phức tạp thời gian của thao tác chèn vào đầu một danh sách liên kết đơn (singly linked list) là bao nhiêu?
97. Cấu trúc dữ liệu nào thường được sử dụng để triển khai hàng đợi ưu tiên?
98. Sự khác biệt chính giữa Stack và Queue là gì?
99. Cấu trúc dữ liệu nào thường được sử dụng để triển khai thuật toán duyệt đồ thị theo chiều rộng (BFS)?
100. Kỹ thuật lập trình động (Dynamic Programming) thường được sử dụng để giải quyết loại bài toán nào?
101. Cấu trúc dữ liệu nào sau đây phù hợp nhất để lưu trữ các phần tử cần được xử lý theo thứ tự ưu tiên?
102. Khi nào nên sử dụng Depth-First Search (DFS) thay vì Breadth-First Search (BFS)?
103. Cấu trúc dữ liệu nào sau đây phù hợp nhất để kiểm tra xem một dấu ngoặc có hợp lệ hay không (ví dụ: ‘(){}[]’)?
104. Thuật toán nào sau đây được sử dụng để tìm đường đi ngắn nhất trong một đồ thị có trọng số không âm?
105. Cây tìm kiếm nhị phân (BST) có đặc điểm gì?
106. Ưu điểm chính của việc sử dụng danh sách liên kết so với mảng là gì?
107. Cây nào sau đây đảm bảo rằng độ cao của cây là O(log n) trong mọi trường hợp?
108. Độ phức tạp thời gian của thao tác xóa một phần tử khỏi một mảng là gì?
109. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai bộ nhớ cache?
110. Thuật toán sắp xếp nào sau đây là ổn định (stable)?
111. Độ phức tạp thời gian tốt nhất của thuật toán Insertion Sort là gì?
112. Độ phức tạp thời gian của thao tác tìm kiếm trong một hash table trung bình là bao nhiêu?
113. Khi nào nên sử dụng thuật toán Bubble Sort?
114. Độ phức tạp không gian của thuật toán Merge Sort là gì?
115. Phương pháp nào sau đây là một cách tiếp cận chia để trị (divide and conquer)?
116. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc LIFO (Last In, First Out)?
117. Hash table giải quyết xung đột bằng phương pháp nào sau đây?
118. Độ phức tạp thời gian của thao tác tìm kiếm trong cây tìm kiếm nhị phân (BST) tốt nhất là gì?
119. Ưu điểm của việc sử dụng cây B (B-tree) so với cây tìm kiếm nhị phân (BST) là gì?
120. Sự khác biệt chính giữa thuật toán Prim và thuật toán Kruskal là gì?
121. Độ phức tạp không gian của thuật toán sắp xếp chèn (insertion sort) là bao nhiêu?
122. Trong thuật toán Dijkstra, cấu trúc dữ liệu nào sau đây thường được sử dụng để lưu trữ khoảng cách từ đỉnh nguồn đến các đỉnh khác?
123. Cấu trúc dữ liệu nào sau đây thích hợp nhất để mô phỏng việc quản lý các tiến trình trong hệ điều hành?
124. Ưu điểm chính của việc sử dụng danh sách liên kết so với mảng là gì?
125. Thuật toán nào sau đây thường được sử dụng để tìm cây khung nhỏ nhất (minimum spanning tree) trong một đồ thị liên thông có trọng số?
126. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
127. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân (binary search) trong trường hợp tốt nhất là bao nhiêu?
128. Phương pháp tiếp cận nào sau đây thường được sử dụng để giải quyết bài toán ‘người du lịch’ (traveling salesman problem)?
129. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai bộ nhớ cache?
130. Thuật toán nào sau đây là một ví dụ về thuật toán ‘chia để trị’ nhưng không phải là thuật toán sắp xếp?
131. Khi nào nên sử dụng cây tìm kiếm nhị phân tự cân bằng (ví dụ: cây AVL, cây đỏ-đen) thay vì cây tìm kiếm nhị phân thông thường?
132. Ưu điểm chính của việc sử dụng cây đỏ-đen (red-black tree) so với cây AVL là gì?
133. Cấu trúc dữ liệu nào sau đây phù hợp nhất để kiểm tra xem một chuỗi có phải là palindrome hay không?
134. Trong lập trình động (dynamic programming), kỹ thuật nào sau đây được sử dụng để tránh tính toán lại các bài toán con đã được giải trước đó?
135. Độ phức tạp thời gian tốt nhất của thuật toán sắp xếp nổi bọt (Bubble Sort) là bao nhiêu?
136. Thuật toán nào sau đây là một ví dụ về thuật toán tham lam (greedy algorithm)?
137. Trong bảng băm (hash table), phương pháp giải quyết xung đột nào sau đây có thể dẫn đến hiện tượng ‘clustering’?
138. Hàm băm (hash function) tốt nên có đặc điểm nào sau đây?
139. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình là O(n log n)?
140. Trong thuật toán tìm kiếm nhị phân, điều kiện tiên quyết để thuật toán hoạt động đúng là gì?
141. Cấu trúc dữ liệu nào sau đây cho phép truy cập ngẫu nhiên (random access) đến các phần tử?
142. Thuật toán sắp xếp nào sau đây có hiệu suất tốt nhất trong trường hợp dữ liệu đã gần được sắp xếp?
143. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai hàng đợi ưu tiên (priority queue)?
144. Thuật toán nào sau đây sử dụng kỹ thuật chia để trị (divide and conquer)?
145. Trong cây nhị phân tìm kiếm (Binary Search Tree), thao tác nào sau đây có độ phức tạp thời gian trung bình là O(log n)?
146. Khi nào nên sử dụng danh sách liên kết đơn (singly linked list) thay vì danh sách liên kết đôi (doubly linked list)?
147. Cây nào sau đây đảm bảo rằng độ cao của cây luôn được giữ ở mức O(log n), trong đó n là số lượng nút?
148. Khi nào nên sử dụng thuật toán tìm kiếm theo chiều rộng (BFS) thay vì tìm kiếm theo chiều sâu (DFS) trong đồ thị?
149. Điểm khác biệt chính giữa hàng đợi (Queue) và hàng đợi ưu tiên (Priority Queue) là gì?
150. Trong đồ thị, cấu trúc dữ liệu nào sau đây thường được sử dụng để biểu diễn danh sách kề (adjacency list)?