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

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

1. Cấu trúc dữ liệu nào cho phép truy cập phần tử ở đầu và cuối trong thời gian O(1)?
2. Ứng dụng phổ biến nhất của hàng đợi (Queue) là gì?
3. Hàm băm (hash function) lý tưởng nên có tính chất nào sau đây?
4. 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) trong đồ thị?
5. Độ phức tạp thời gian nào sau đây thường được coi là hiệu quả nhất cho một thuật toán?
6. Thuật toán nào sau đây có thể tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh trong đồ thị có trọng số (có thể âm)?
7. Thuật toán duyệt đồ thị theo chiều rộng (BFS) thường sử dụng cấu trúc dữ liệu nào để quản lý các đỉnh cần thăm?
8. Trong cây nhị phân cân bằng (ví dụ AVL tree, Red-Black tree), mục đích của việc cân bằng cây là gì?
9. 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)?
10. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc LIFO (Last In, First Out)?
11. Khi nào nên sử dụng danh sách liên kết thay vì mảng?
12. Khi nào thuật toán sắp xếp chèn (Insertion Sort) hoạt động hiệu quả hơn so với sắp xếp nhanh (Quick Sort)?
13. Trong cây nhị phân tìm kiếm, thao tác xóa một nút có hai con phức tạp hơn xóa nút lá hoặc nút có một con. Vì sao?
14. Độ phức tạp không gian của thuật toán sắp xếp nổi bọt (Bubble Sort) là bao nhiêu?
15. Trong đồ thị, thuật toán nào được sử dụng để tìm đường đi ngắn nhất giữa hai đỉnh trong đồ thị có trọng số không âm?
16. Ưu điểm của việc sử dụng bảng băm (hash table) là gì?
17. Thuật toán nào sau đây là một ví dụ của phương pháp `chia để trị` (divide and conquer)?
18. Thuật toán sắp xếp nào có độ phức tạp thời gian tốt nhất trong trường hợp dữ liệu đã gần như được sắp xếp?
19. Cấu trúc dữ liệu nào cho phép truy cập phần tử đầu tiên và cuối cùng, thêm và xóa ở cả hai đầu một cách hiệu quả?
20. Cấu trúc dữ liệu nào thường được sử dụng để cài đặt hàng đợi ưu tiên (Priority Queue)?
21. Độ 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) là O(1), nhưng trong trường hợp xấu nhất có thể lên đến O(n). Trường hợp xấu nhất này xảy ra khi nào?
22. Trong thuật toán sắp xếp nhanh (Quick Sort), việc lựa chọn phần tử chốt (pivot) ảnh hưởng như thế nào đến hiệu suất của thuật toán?
23. Trong thuật toán tìm kiếm nhị phân, dữ liệu đầu vào cần phải có tính chất gì?
24. Độ phức tạp thời gian tốt nhất của thuật toán sắp xếp trộn (Merge Sort) là bao nhiêu?
25. Cấu trúc dữ liệu nào phù hợp nhất để biểu diễn mối quan hệ `một-nhiều` giữa các phần tử?
26. Thuật toán nào sau đây được sử dụng để tìm cây khung nhỏ nhất (Minimum Spanning Tree) trong đồ thị?
27. Cấu trúc dữ liệu `đồ thị` (Graph) được sử dụng để mô hình hóa loại quan hệ nào giữa các đối tượng?
28. Cấu trúc dữ liệu nào phù hợp nhất để kiểm tra xem một chuỗi ngoặc có hợp lệ hay không (ví dụ `()[]{}` là hợp lệ, `([)]` là không hợp lệ)?
29. 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ế?
30. Ưu điểm chính của danh sách liên kết so với mảng là gì?