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

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

1. Trong thuật toán Quick Sort, việc lựa chọn phần tử chốt (pivot) có ảnh hưởng lớn đến hiệu suất của thuật toán. Cách chọn pivot nào sau đây thường cho hiệu suất tốt trong trường hợp trung bình?
2. Cây khung nhỏ nhất (Minimum Spanning Tree - MST) của một đồ thị liên thông, vô hướng và có trọng số là gì?
3. Ưu điểm chính của danh sách liên kết (Linked List) so với mảng (Array) là gì?
4. Trong cấu trúc dữ liệu mảng (Array), thao tác nào sau đây có độ phức tạp thời gian trung bình là O(1)?
5. Trong cây nhị phân tìm kiếm (Binary Search Tree), thao tác tìm kiếm một nút có giá trị cụ thể có độ phức tạp thời gian tốt nhất là bao nhiêu?
6. Trong thuật toán Kruskal để tìm cây khung nhỏ nhất (MST), tiêu chí nào sau đây được sử dụng để chọn cạnh thêm vào MST?
7. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
8. Độ phức tạp thời gian tốt nhất của thuật toán sắp xếp chèn (Insertion Sort) là O(n). Trường hợp nào dẫn đến độ phức tạp này?
9. Độ phức tạp không gian của thuật toán sắp xếp trộn (Merge Sort) là O(n). Điều này chủ yếu là do đâu?
10. Giải thuật nào sau đây là ví dụ của thuật toán tham lam (Greedy Algorithm)?
11. Trong cây nhị phân hoàn chỉnh (Complete Binary Tree), chiều cao của cây có quan hệ như thế nào với số lượng nút (n)?
12. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn mối quan hệ phân cấp, ví dụ như cây thư mục trong hệ điều hành?
13. Trong kỹ thuật lập trình động (Dynamic Programming), nguyên tắc `tối ưu chồng lấp` (overlapping subproblems) nghĩa là gì?
14. Thuật toán nào sau đây có thể được sử dụng để phát hiện chu trình trong đồ thị có hướng?
15. Giải thuật sắp xếp nào sau đây thường được sử dụng trong thư viện chuẩn của nhiều ngôn ngữ lập trình vì hiệu suất tốt trong thực tế?
16. Ưu điểm chính của việc sử dụng danh sách liên kết đôi (Doubly Linked List) so với danh sách liên kết đơn (Singly Linked List) là gì?
17. Giải thuật sắp xếp nào sau đây có độ phức tạp thời gian trung bình tốt nhất là O(n log n)?
18. Trong cấu trúc dữ liệu đồ thị (Graph), biểu diễn nào sau đây phù hợp nhất để kiểm tra nhanh chóng xem có cạnh nối giữa hai đỉnh bất kỳ hay không?
19. Khi nào thì nên sử dụng giải thuật tìm kiếm tuyến tính (Linear Search) thay vì tìm kiếm nhị phân (Binary Search)?
20. Trong bảng băm (Hash Table), `xung đột` (collision) xảy ra khi nào?
21. Trong thuật toán tìm kiếm nhị phân (Binary Search), dữ liệu đầu vào cần phải có đặc điểm gì?
22. Giải thuật nào sau đây thuộc loại `chia để trị` (Divide and Conquer)?
23. Giải thuật sắp xếp nào sau đây hoạt động bằng cách lặp đi lặp lại việc so sánh các cặp phần tử liền kề và hoán đổi chúng nếu chúng không đúng thứ tự?
24. Thuật toán nào sau đây thường được sử dụng để tìm đường đi ngắn nhất giữa các đỉnh trong một đồ thị có trọng số không âm?
25. Ứng dụng nào sau đây sử dụng cấu trúc dữ liệu ngăn xếp (Stack) một cách điển hình?
26. Cấu trúc dữ liệu nào sau đây thường được sử dụng để cài đặt hàng đợi ưu tiên?
27. Khi nào thì thuật toán tìm kiếm theo chiều rộng (Breadth-First Search - BFS) được ưu tiên hơn thuật toán tìm kiếm theo chiều sâu (Depth-First Search - DFS) trong việc duyệt đồ thị?
28. Trong cấu trúc dữ liệu hàng đợi ưu tiên (Priority Queue), phần tử nào sẽ được lấy ra tiếp theo?
29. Khi nào thì việc sử dụng bảng băm (Hash Table) hiệu quả hơn so với cây nhị phân tìm kiếm (Binary Search Tree) trong việc tìm kiếm, chèn và xóa phần tử?
30. Cấu trúc dữ liệu nào sau đây cho phép truy cập phần tử ở cả hai đầu một cách hiệu quả?