Đề thi, bài tập trắc nghiệm online Cấu trúc dữ liệu và giải thuậtĐề 10 – Bài tập, đề thi trắc nghiệm online Cấu trúc dữ liệu và giải thuật Đăng vào 2 Tháng 5, 2026 bởi admin Đề 10 – Bài tập, đề thi trắc nghiệm online Cấu trúc dữ liệu và giải thuật Đề 10 – Bài tập, đề thi trắc nghiệm online Cấu trúc dữ liệu và giải thuật Số câu30Quiz ID15590 Làm bài Câu 1 1. 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)? A A. Mảng (Array) B B. Danh sách liên kết (Linked List) C C. Heap (Đống) D D. Cây nhị phân tìm kiếm (Binary Search Tree) Câu 2 2. Phương pháp tiếp cận 'chia để trị' (Divide and Conquer) được sử dụng trong thuật toán nào sau đây? A A. Sắp xếp nổi bọt (Bubble Sort) B B. Sắp xếp chèn (Insertion Sort) C C. Sắp xếp trộn (Merge Sort) D D. Sắp xếp chọn (Selection Sort) Câu 3 3. Độ phức tạp không gian của thuật toán sắp xếp trộn (Merge Sort) là: A A. O(1) B B. O(log n) C C. O(n) D D. O(n log n) Câu 4 4. Thuật toán Kruskal được sử dụng để giải quyết bài toán nào sau đây? A A. Tìm đường đi ngắn nhất giữa hai đỉnh B B. Tìm cây khung nhỏ nhất (Minimum Spanning Tree) C C. Sắp xếp đồ thị D D. Tìm kiếm theo chiều rộng trên đồ thị Câu 5 5. Thuật toán tìm kiếm theo chiều sâu (DFS - Depth-First Search) thường được sử dụng để làm gì? A A. Tìm đường đi ngắn nhất trong đồ thị B B. Tìm cây khung nhỏ nhất C C. Duyệt và khám phá các thành phần liên thông của đồ thị D D. Sắp xếp các đỉnh của đồ thị theo thứ tự topo Câu 6 6. Trong cây AVL, khi nào cần thực hiện phép quay cây? A A. Khi cây trở nên quá cao B B. Khi cây trở nên quá thấp C C. Khi cây mất cân bằng (hệ số cân bằng vượt quá ±1) D D. Khi số lượng nút trong cây vượt quá một ngưỡng nhất định Câu 7 7. Trong cây Trie (cây tiền tố), mục đích chính của việc sử dụng cấu trúc này là gì? A A. Sắp xếp dữ liệu theo thứ tự B B. Tìm kiếm gần đúng (fuzzy search) C C. Lưu trữ và tìm kiếm hiệu quả các chuỗi (tiền tố) D D. Nén dữ liệu Câu 8 8. Thuật toán BFS (Breadth-First Search) thường sử dụng cấu trúc dữ liệu nào để quản lý các đỉnh cần thăm? A A. Ngăn xếp (Stack) B B. Hàng đợi (Queue) C C. Mảng (Array) D D. Danh sách liên kết (Linked List) Câu 9 9. Kiểu dữ liệu trừu tượng (ADT - Abstract Data Type) nào mô tả một tập hợp các phần tử không có thứ tự và không cho phép phần tử trùng lặp? A A. Danh sách (List) B B. Tập hợp (Set) C C. Hàng đợi (Queue) D D. Ngăn xếp (Stack) Câu 10 10. Trong cây đỏ-đen (Red-Black Tree), màu sắc của một nút được sử dụng để làm gì? A A. Biểu thị giá trị của nút B B. Xác định độ ưu tiên của nút C C. Duy trì tính cân bằng của cây D D. Xác định nút cha của nút Câu 11 11. Cấu trúc dữ liệu nào cho phép truy cập ngẫu nhiên (random access) đến các phần tử với độ phức tạp thời gian O(1)? A A. Danh sách liên kết đơn (Singly Linked List) B B. Danh sách liên kết đôi (Doubly Linked List) C C. Mảng (Array) D D. Hàng đợi (Queue) Câu 12 12. Cấu trúc dữ liệu nào phù hợp nhất để biểu diễn mối quan hệ 'nhiều-nhiều'? A A. Mảng (Array) B B. Danh sách liên kết (Linked List) C C. Cây (Tree) D D. Đồ thị (Graph) Câu 13 13. Giải thuật 'tham lam' (Greedy algorithm) thường được sử dụng để giải quyết bài toán nào sau đây? A A. Bài toán tìm kiếm đường đi ngắn nhất trong đồ thị B B. Bài toán sắp xếp mảng C C. Bài toán tìm kiếm nhị phân D D. Bài toán quy hoạch động Câu 14 14. Thuật toán tìm kiếm nào hiệu quả nhất trên một mảng đã được sắp xếp? A A. Tìm kiếm tuyến tính (Linear Search) B B. Tìm kiếm nhị phân (Binary Search) C C. Tìm kiếm theo chiều rộng (Breadth-First Search) D D. Tìm kiếm theo chiều sâu (Depth-First Search) Câu 15 15. Cấu trúc dữ liệu nào sau đây là 'phi tuyến tính'? A A. Mảng (Array) B B. Hàng đợi (Queue) C C. Cây (Tree) D D. Ngăn xếp (Stack) Câu 16 16. Trong lập trình động (Dynamic Programming), kỹ thuật 'ghi nhớ' (memoization) là gì? A A. Kỹ thuật chia nhỏ bài toán thành các bài toán con B B. Kỹ thuật lưu trữ kết quả của các bài toán con đã giải để tránh tính toán lại C C. Kỹ thuật sắp xếp các bài toán con theo thứ tự D D. Kỹ thuật tối ưu hóa không gian bộ nhớ sử dụng Câu 17 17. Ưu điểm chính của 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ì? A A. Tiết kiệm bộ nhớ hơn B B. Truy cập ngẫu nhiên nhanh hơn C C. Duyệt ngược danh sách dễ dàng hơn D D. Thêm phần tử vào đầu danh sách nhanh hơn Câu 18 18. 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? A A. Ngăn xếp (Stack) B B. Hàng đợi (Queue) C C. Mảng (Array) D D. Heap (Đống) ưu tiên Câu 19 19. Trong bảng băm (Hash Table), 'xử lý đụng độ' (collision resolution) là gì? A A. Quá trình tính toán hàm băm B B. Quá trình tìm kiếm giá trị trong bảng băm C C. Kỹ thuật giải quyết khi nhiều khóa băm vào cùng một vị trí D D. Quá trình thay đổi kích thước bảng băm Câu 20 20. Thuật toán nào sau đây không phải là thuật toán sắp xếp so sánh? A A. Sắp xếp trộn (Merge Sort) B B. Sắp xếp nhanh (Quick Sort) C C. Sắp xếp đếm (Counting Sort) D D. Sắp xếp vun đống (Heap Sort) Câu 21 21. Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất, trung bình và xấu nhất đều là O(n log n)? A A. Sắp xếp nhanh (Quick Sort) B B. Sắp xếp trộn (Merge Sort) C C. Sắp xếp chèn (Insertion Sort) D D. Sắp xếp chọn (Selection Sort) Câu 22 22. Thuật toán nào sau đây là một ví dụ của thuật toán 'quay lui' (Backtracking)? A A. Sắp xếp trộn (Merge Sort) B B. Tìm kiếm nhị phân (Binary Search) C C. Giải Sudoku D D. Thuật toán Dijkstra Câu 23 23. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc LIFO (Last-In, First-Out)? A A. Hàng đợi (Queue) B B. Ngăn xếp (Stack) C C. Danh sách liên kết (Linked List) D D. Mảng (Array) Câu 24 24. Trong cây nhị phân tìm kiếm (Binary Search Tree), thao tác nào có độ phức tạp thời gian trung bình là O(log n)? A A. Duyệt cây theo thứ tự trước (Pre-order traversal) B B. Duyệt cây theo thứ tự sau (Post-order traversal) C C. Tìm kiếm một nút (Searching for a node) D D. Duyệt cây theo thứ tự giữa (In-order traversal) Câu 25 25. Trong thuật toán sắp xếp vun đống (Heap Sort), giai đoạn 'vun đống' (heapify) có mục đích gì? A A. Chia mảng thành các phần nhỏ hơn B B. Trộn các mảng đã sắp xếp C C. Xây dựng một heap từ mảng đầu vào D D. Tìm phần tử nhỏ nhất trong mảng Câu 26 26. Độ phức tạp thời gian trung bình của thuật toán sắp xếp nhanh (Quick Sort) là: A A. O(n^2) B B. O(log n) C C. O(n log n) D D. O(n) Câu 27 27. Độ 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) trong trường hợp mảng đã được sắp xếp là: A A. O(n^2) B B. O(log n) C C. O(n log n) D D. O(n) Câu 28 28. Cấu trúc dữ liệu nào phù hợp nhất để kiểm tra xem một từ có tồn tại trong một tập hợp lớn các từ hay không? A A. Mảng (Array) B B. Danh sách liên kết (Linked List) C C. Bảng băm (Hash Table) D D. Cây nhị phân tìm kiếm (Binary Search Tree) Câu 29 29. Độ phức tạp thời gian của thao tác thêm một phần tử vào đầu danh sách liên kết đơn (Singly Linked List) là: A A. O(n) B B. O(log n) C C. O(1) D D. O(n log n) Câu 30 30. Thuật toán nào sau đây tìm đường đi ngắn nhất giữa hai đỉnh trong đồ thị có trọng số âm, nhưng không có chu trình âm? A A. Dijkstra B B. BFS C C. DFS D D. Bellman-Ford Đề 9 – Bài tập, đề thi trắc nghiệm online Quản lý bán hàng Đề 11 – Bài tập, đề thi trắc nghiệm online Quản trị nguồn nhân lực