Trắc nghiệm Cấu trúc dữ liệu và giải thuật
150+ câu trắc nghiệm Cấu trúc dữ liệu và giải thuật chương 6
Lưu ý và Miễn trừ trách nhiệm:Các câu hỏi và đáp án trong các bộ trắc nghiệm này được biên soạn nhằm phục vụ mục đích tham khảo và ôn luyện kiến thức. Chúng không đại diện cho bất kỳ tài liệu, đề thi chính thức hay đề thi chứng chỉ nào từ các tổ chức giáo dục hoặc cơ quan cấp chứng chỉ chuyên môn. Admin không chịu trách nhiệm về tính chính xác tuyệt đối của nội dung hoặc bất kỳ quyết định nào của bạn được đưa ra dựa trên kết quả của các bài trắc nghiệm.
Chào mừng bạn đã đến với bộ 150+ câu trắc nghiệm Cấu trúc dữ liệu và giải thuật chương 6. Đây là nơi tổng hợp các câu hỏi trắc nghiệm giúp bạn ôn luyện và kiểm tra kiến thức. Hãy chọn một bộ câu hỏi bên dưới để bắt đầu ngay. Chúc bạn làm bài thật tốt và đạt điểm cao!
1. Thuật toán sắp xếp nào phù hợp nhất khi bộ nhớ là một yếu tố hạn chế?
2. Trong thuật toán Selection Sort, số lượng phép hoán đổi (swaps) tối đa trong trường hợp xấu nhất là bao nhiêu?
3. Thuật toán nào sau đây có thể được sử dụng để sắp xếp một danh sách liên kết (linked list) một cách hiệu quả?
4. Đâu là nhược điểm chính của thuật toán Bubble Sort?
5. Khi nào nên sử dụng thuật toán Radix Sort?
6. Thuật toán sắp xếp nào sau đây hoạt động tốt nhất trên các tập dữ liệu gần như đã được sắp xếp?
7. Đâu là độ phức tạp thời gian trường hợp xấu nhất của thuật toán Insertion Sort?
8. Trong thuật toán Heap Sort, cấu trúc dữ liệu nào được sử dụng?
9. Thuật toán nào sau đây không phải là thuật toán sắp xếp so sánh?
10. Trong thuật toán Quick Sort, điều gì xảy ra nếu pivot được chọn luôn là phần tử lớn nhất hoặc nhỏ nhất trong mảng?
11. Đâu là một ứng dụng của thuật toán sắp xếp Radix Sort?
12. Đâu là độ phức tạp thời gian tốt nhất của thuật toán Bubble Sort?
13. Thuật toán sắp xếp nào sau đây có độ phức tạp không gian (space complexity) là O(1)?
14. Đâu là ứng dụng phổ biến của thuật toán sắp xếp?
15. Thuật toán nào sau đây sử dụng chiến lược chia để trị?
16. Đâu là ưu điểm chính của thuật toán Merge Sort?
17. Khi nào nên sử dụng thuật toán Bucket Sort?
18. Trong thuật toán Heap Sort, thao tác nào được sử dụng để duy trì tính chất heap sau khi xóa phần tử gốc?
19. 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) và thường được sử dụng trong thực tế?
20. Thuật toán nào sau đây có thể được song song hóa (parallelized) một cách hiệu quả?
21. Thuật toán nào sau đây có độ phức tạp thời gian trung bình tốt nhất?
22. Trong thuật toán Quick Sort, kỹ thuật nào được sử dụng để chia mảng thành các phần nhỏ hơn?
23. Trong các thuật toán sắp xếp, thuật toán nào ổn định (stable)?
24. Thuật toán sắp xếp nào sau đây phù hợp nhất cho việc sắp xếp một lượng lớn dữ liệu trên đĩa (external sorting)?
25. Đâu là một nhược điểm của thuật toán Quick Sort?
26. Trong các thuật toán sắp xếp sau, thuật toán nào có độ phức tạp thời gian tốt nhất là O(n)?
27. Thuật toán sắp xếp nào sau đây là một thuật toán sắp xếp so sánh?
28. Trong thuật toán Counting Sort, điều gì xảy ra nếu có các phần tử âm trong mảng?
29. Thuật toán sắp xếp nào sau đây là một thuật toán sắp xếp tại chỗ (in-place)?
30. Điều gì sẽ xảy ra nếu bạn cố gắng sắp xếp một mảng đã được sắp xếp bằng thuật toán Bubble Sort?
31. Thuật toán nào sau đây được sử dụng để tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh trong một đồ thị có trọng số?
32. Cấu trúc dữ liệu nào sau đây phù hợp nhất để kiểm tra một biểu thức toán học có cân bằng dấu ngoặc hay không?
33. Trong cây tìm kiếm nhị phân cân bằng (balanced BST), chiều cao của cây có mối quan hệ như thế nào với số lượng nút n?
34. 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 sâu (DFS) trên đồ thị?
35. Trong một đồ thị có hướng, thành phần liên thông mạnh (strongly connected component) là gì?
36. Trong một bảng băm (hash table), điều gì xảy ra khi hai khóa khác nhau được băm vào cùng một vị trí?
37. 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)?
38. Cây tìm kiếm nhị phân (BST) có đặc điểm nào sau đây?
39. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn mối quan hệ cha-con trong một tổ chức?
40. Trong một đồ thị vô hướng, bậc của một đỉnh là gì?
41. Độ phức tạp thời gian trung bình của thuật toán Quick Sort là bao nhiêu?
42. Cấu trúc dữ liệu nào sau đây sử dụng con trỏ để liên kết các phần tử?
43. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last-In, First-Out)?
44. Trong thuật toán Dijkstra tìm đường đi ngắn nhất, 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?
45. Trong cây, nút nào không có nút con được gọi là gì?
46. Cấu trúc dữ liệu nào sau đây cho phép thêm và xóa các phần tử ở cả hai đầu?
47. 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 sắp xếp và đặt nó vào đầu phần đã sắp xếp?
48. Thao tác nào sau đây không phải là thao tác cơ bản trên một hàng đợi (queue)?
49. 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?
50. Thuật toán nào sau đây được sử dụng để tìm cây khung nhỏ nhất (minimum spanning tree) trong một đồ thị có trọng số?
51. Thuật toán nào sau đây có độ phức tạp thời gian ổn định nhất (không phụ thuộc vào dữ liệu đầu vào)?
52. Thuật toán nào sau đây được sử dụng để tìm kiếm theo chiều rộng trên đồ thị?
53. Trong các cấu trúc dữ liệu sau, cấu trúc nào thường được sử dụng để cài đặt hàng đợi ưu tiên?
54. Độ phức tạp thời gian tốt nhất của thuật toán tìm kiếm nhị phân (Binary Search) là bao nhiêu?
55. Ư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ì?
56. Trong cây tìm kiếm nhị phân, thao tác nào sau đây có độ phức tạp thời gian trung bình là O(log n)?
57. Trong một cây nhị phân hoàn chỉnh (complete binary tree), mức cao nhất có thể chứa tối đa bao nhiêu nút nếu cây có chiều cao h?
58. 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) và hoạt động dựa trên nguyên tắc chia để trị?
59. Cấu trúc dữ liệu nào sau đây cho phép truy cập các phần tử theo chỉ số (index) với độ phức tạp O(1)?
60. Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(n)?
61. Thuật toán nào sau đây sử dụng kỹ thuật ‘tham lam’ (greedy) để tìm cây khung nhỏ nhất?
62. Thuật toán Kruskal dùng để giải quyết bài toán nào?
63. Khi nào nên sử dụng thuật toán sắp xếp chèn (Insertion Sort)?
64. Cây nào sau đây đảm bảo độ phức tạp tìm kiếm là O(log n) trong trường hợp xấu nhất?
65. Trong các phương pháp sắp xếp sau, phương pháp nào có độ phức tạp thời gian trung bình là O(n log n)?
66. Khi nào nên sử dụng thuật toán tìm kiếm theo chiều sâu (DFS) thay vì tìm kiếm theo chiều rộng (BFS)?
67. Trong các thuật toán tìm kiếm trên đồ thị, thuật toán nào sử dụng hàng đợi (queue)?
68. Trong thuật toán sắp xếp trộn (Merge Sort), giai đoạn nào chiếm phần lớn thời gian thực hiện?
69. Độ phức tạp thời gian của thao tác tìm kiếm trong một hash table (bảng băm) trung bình là bao nhiêu?
70. Kỹ thuật ‘chia để trị’ (Divide and Conquer) thường được áp dụng trong thuật toán nào sau đây?
71. Cây nào sau đây thường được sử dụng để biểu diễn các biểu thức số học?
72. Trong các thuật toán sắp xếp, thuật toán nào có độ phức tạp thời gian trung bình và xấu nhất đều là O(n log n)?
73. 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?
74. 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 trung bình là O(log n)?
75. Độ phức tạp thời gian của thao tác xóa một phần tử khỏi cuối mảng (array) là bao nhiêu?
76. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn hàng đợi ưu tiên (priority queue)?
77. Trong cấu trúc dữ liệu Heap, phần tử lớn nhất (hoặc nhỏ nhất) nằm ở đâu?
78. Cấu trúc dữ liệu nào sau đây cho phép truy cập các phần tử theo thứ tự FIFO (First In, First Out)?
79. Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(n)?
80. Thuật toán Dijkstra dùng để giải quyết bài toán nào?
81. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
82. Độ phức tạp thời gian tốt nhất của thuật toán tìm kiếm nhị phân (Binary Search) là bao nhiêu?
83. Trong cấu trúc dữ liệu đồ thị, ma trận kề (adjacency matrix) được sử dụng để biểu diễn điều gì?
84. Độ phức tạp thời gian của thao tác chèn một phần tử vào đầu danh sách liên kết đơn (singly linked list) là bao nhiêu?
85. Ư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ì?
86. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trong trường hợp xấu nhất là O(n^2)?
87. Cây nào sau đây đảm bảo cân bằng bằng cách xoay các nút khi cần thiết?
88. Thuật toán Prim dùng để giải quyết bài toán nào?
89. Trong các thuật toán sắp xếp, thuật toán nào không ổn định (unstable)?
90. Cấu trúc dữ liệu nào sau đây sử dụng con trỏ để liên kết các phần tử?
91. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian ổn định, bất kể dữ liệu đầu vào?
92. Thuật toán tìm kiếm nào sau đây hoạt động bằng cách nhảy qua các khối phần tử thay vì duyệt từng phần tử một?
93. Điều gì xảy ra nếu bạn chèn các phần tử đã được sắp xếp vào một cây tìm kiếm nhị phân?
94. Trong thuật toán tìm kiếm tuyến tính (Linear Search), điều gì xảy ra nếu phần tử cần tìm không có trong mảng?
95. Thuật toán nào sau đây phù hợp nhất để tìm kiếm một phần tử trong một mảng rất lớn đã được sắp xếp?
96. Thao tác nào sau đây được sử dụng để duy trì tính cân bằng của cây AVL sau khi chèn hoặc xóa một nút?
97. Khi nào việc sử dụng cây tìm kiếm nhị phân trở nên kém hiệu quả?
98. Trong các thuật toán sắp xếp sau, thuật toán nào có độ phức tạp thời gian tốt nhất là O(n)?
99. Độ phức tạp thời gian của thuật toán Binary Search là bao nhiêu?
100. Trong thuật toán Heap Sort, cấu trúc dữ liệu nào được sử dụng?
101. Ưu điểm chính của việc sử dụng cây tìm kiếm nhị phân so với mảng hoặc danh sách liên kết để lưu trữ dữ liệu là gì?
102. Cây B (B-tree) thường được sử dụng cho mục đích gì?
103. Độ phức tạp thời gian trung bình để tìm kiếm một nút trong cây tìm kiếm nhị phân cân bằng là bao nhiêu?
104. Trong thuật toán Heap Sort, thao tác ‘heapify’ dùng để làm gì?
105. Ưu điểm chính của thuật toán Binary Search so với Linear Search là gì?
106. Cây tìm kiếm nhị phân (Binary Search Tree) có đặc điểm nào sau đây?
107. Thuật toán sắp xếp nào sau đây hoạt động bằng cách chia mảng thành các mảng con nhỏ hơn, sắp xếp chúng và sau đó hợp nhất chúng lại?
108. Đặc điểm nào sau đây không phải là ưu điểm của thuật toán Quick Sort?
109. Trong thuật toán Binary Search, điều gì xảy ra nếu phần tử cần tìm nhỏ hơn phần tử ở giữa mảng?
110. Thuật toán sắp xếp nào sau đây là một thuật toán tại chỗ (in-place)?
111. Thuật toán tìm kiếm nào sau đây có thể hoạt động hiệu quả hơn Linear Search trên mảng đã được sắp xếp, nhưng không yêu cầu duyệt qua tất cả các phần tử?
112. Thao tác nào sau đây không phải là một thao tác cơ bản trên cây tìm kiếm nhị phân?
113. Độ phức tạp thời gian trường hợp xấu nhất của thuật toán Quick Sort là bao nhiêu?
114. Loại cây nào sau đây tự động cân bằng để đảm bảo độ phức tạp thời gian tìm kiếm là O(log n) trong trường hợp xấu nhất?
115. Khi nào nên sử dụng thuật toá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 Quick Sort?
116. Khi nào nên sử dụng thuật toán Linear Search?
117. Độ phức tạp thời gian để chèn một phần tử vào một cây tìm kiếm nhị phân không cân bằng trong trường hợp xấu nhất là gì?
118. 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?
119. Thuật toán tìm kiếm nào sau đây duyệt qua từng phần tử của mảng cho đến khi tìm thấy phần tử cần tìm?
120. 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) và thường được sử dụng trong thực tế?
121. Trong thuật toán tìm kiếm nhị phân, nếu phần tử cần tìm lớn hơn phần tử ở giữa mảng, thì điều gì xảy ra?
122. Thuật toán Dijkstra được sử dụng để giải quyết bài toán nào?
123. 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)?
124. Ưu điểm chính của thuật toán sắp xếp nhanh (quick sort) so với sắp xếp trộn (merge sort) là gì?
125. Thuật toán sắp xếp nào sau đây có thể được sử dụng để sắp xếp một danh sách liên kết một cách hiệu quả?
126. Thao tác nào sau đây không phải là một thao tác cơ bản trên cây tìm kiếm nhị phân?
127. Sự khác biệt chính giữa thuật toán DFS và BFS là gì?
128. Ưu điểm chính của tìm kiếm nhị phân so với tìm kiếm tuyến tính là gì?
129. Sự khác biệt chính giữa thuật toán Prim và Kruskal để tìm cây khung nhỏ nhất là gì?
130. Điểm yếu chính của thuật toán sắp xếp chọn (selection sort) là gì?
131. Trong thuật toán tìm kiếm theo chiều sâu (depth-first search – DFS), cấu trúc dữ liệu nào thường được sử dụng để quản lý các đỉnh cần duyệt?
132. Bài toán nào sau đây thường được giải quyết bằng kỹ thuật lập trình động?
133. Cây nào sau đây đảm bảo độ phức tạp thời gian O(log n) cho các thao tác tìm kiếm, chèn và xóa trong trường hợp xấu nhất?
134. Trong thuật toán sắp xếp nhanh (quick sort), việc chọn phần tử chốt (pivot) ảnh hưởng đến điều gì?
135. 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?
136. Trong thuật toán sắp xếp trộn (merge sort), thao tác trộn hai mảng đã sắp xếp có độ phức tạp thời gian là bao nhiêu?
137. Trong một cây tìm kiếm nhị phân cân bằng, độ cao của cây có liên quan đến số lượng nút (n) như thế nào?
138. Thuật toán tìm kiếm theo chiều rộng (breadth-first search – BFS) thường được sử dụng để giải quyết loại bài toán nào?
139. Độ 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?
140. Khi nào nên sử dụng thuật toán sắp xếp chèn (insertion sort)?
141. Điểm khác biệt chính giữa kỹ thuật tham lam (greedy algorithm) và lập trình động (dynamic programming) là gì?
142. Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính trong trường hợp xấu nhất là bao nhiêu?
143. Ứng dụng chính của cây B là gì?
144. Thuật toán tìm kiếm nào sau đây có độ phức tạp thời gian trung bình là O(1)?
145. Trong thuật toán tìm kiếm nhị phân, điều kiện tiên quyết nào cần được đáp ứng để thuật toán hoạt động đúng?
146. Thuật toán sắp xếp nào sau đây là ổn định (stable)?
147. Trong bài toán người du lịch (traveling salesman problem – TSP), mục tiêu là gì?
148. Trong các thuật toán sắp xếp dựa trên so sánh, thuật toán nào có độ phức tạp thời gian tốt nhất trong trường hợp xấu nhất?
149. Thuật toán nào sau đây được sử dụng để tìm cây khung nhỏ nhất (minimum spanning tree) trong một đồ thị có trọng số?
150. Trong một đồ thị, chu trình Euler là gì?
