Đề 13 – Bài tập, đề thi trắc nghiệm online Cấu trúc dữ liệu và giải thuật

Đề 13 - Bài tập, đề thi trắc nghiệm online Cấu trúc dữ liệu và giải thuật

1. Trong cây nhị phân tìm kiếm cân bằng (ví dụ: AVL tree, Red-Black tree), thao tác cân bằng cây được thực hiện để đảm bảo điều gì?
2. Cấu trúc dữ liệu nào sau đây phù hợp nhất để kiểm tra xem một biểu thức ngoặc có hợp lệ hay không (ví dụ: `()[]{}` là hợp lệ, `([)]` là không hợp lệ)?
3. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last-In, First-Out)?
4. Phương pháp `tham lam` (Greedy) trong thiết kế thuật toán thường đưa ra quyết định tối ưu cục bộ với hy vọng đạt được điều gì?
5. Trong cây nhị phân tìm kiếm (Binary Search Tree), thứ tự duyệt nào sau đây sẽ cho ra các nút theo thứ tự tăng dần của giá trị?
6. Trong đồ thị, ma trận kề (Adjacency Matrix) phù hợp nhất để biểu diễn đồ thị nào?
7. Thuật toán nào sau đây tìm đường đi ngắn nhất từ một đỉnh nguồn đến tất cả các đỉnh còn lại trong đồ thị có trọng số không âm?
8. Khi nào thì độ phức tạp thời gian của thuật toán sắp xếp nhanh (Quick Sort) trở thành O(n^2)?
9. Trong lập trình động (Dynamic Programming), kỹ thuật `ghi nhớ` (memoization) được sử dụng để làm gì?
10. Thuật toán nào sau đây được sử dụng để tìm chu trình Euler trong đồ thị?
11. Thuật toán Bellman-Ford có thể xử lý đồ thị có trọng số cạnh âm, nhưng có một hạn chế quan trọng. Hạn chế đó là gì?
12. Ư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ì?
13. Độ 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) trong trường hợp mảng đã được sắp xếp là bao nhiêu?
14. Độ phức tạp thời gian trung bình của thao tác tìm kiếm trong bảng băm (Hash Table) phụ thuộc vào yếu tố nào sau đây?
15. Trong thuật toán tìm kiếm theo chiều rộng (Breadth-First Search - BFS) trên đồ thị, 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?
16. Cấu trúc dữ liệu nào phù hợp nhất để cài đặt hàng đợi ưu tiên (Priority Queue)?
17. Trong cấu trúc dữ liệu 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)?
18. Thuật toán Kruskal và thuật toán Prim đều được sử dụng để giải quyết bài toán nào?
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 coi là hiệu quả nhất trong thực tế?
20. Trong cấu trúc dữ liệu đồ thị, danh sách kề (Adjacency List) thường được ưu tiên sử dụng hơn ma trận kề (Adjacency Matrix) trong trường hợp nào?
21. Trong thuật toán tìm kiếm theo chiều sâu (Depth-First Search - DFS) trên đồ thị, cấu trúc dữ liệu nào thường được sử dụng (ngầm định hoặc tường minh) để theo dõi các đỉnh đã duyệt?
22. Độ phức tạp không gian của thuật toán sắp xếp trộn (Merge Sort) là bao nhiêu?
23. 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?
24. Ưu điểm của việc sử dụng bảng băm (Hash Table) là gì?
25. Thuật toán Floyd-Warshall giải quyết bài toán nào sau đây?
26. Cấu trúc dữ liệu Trie (cây tiền tố) được sử dụng hiệu quả nhất cho ứng dụng nào sau đây?
27. Khi nào thì nên sử dụng thuật toán sắp xếp chèn (Insertion Sort) thay vì sắp xếp nhanh (Quick Sort)?
28. Trong lập trình động, bài toán `dãy con chung dài nhất` (Longest Common Subsequence - LCS) thuộc loại bài toán nào?
29. Thuật toán sắp xếp nào sau đây luôn có độ phức tạp thời gian O(n^2) trong mọi trường hợp (tốt nhất, trung bình, xấu nhất)?
30. Cấu trúc dữ liệu nào sau đây hỗ trợ hiệu quả nhất việc thêm và xóa phần tử ở cả hai đầu?