Đề thi, bài tập trắc nghiệm online Cấu trúc dữ liệu và giải thuậtĐề 4 – 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 Đề 4 – Bài tập, đề thi trắc nghiệm online Cấu trúc dữ liệu và giải thuật Đề 4 – 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 ID15584 Làm bài Câu 1 1. Ứng dụng phổ biến của hàng đợi (Queue) là gì? A A. Quản lý bộ nhớ. B B. Xử lý cuộc gọi trong tổng đài điện thoại. C C. Đánh giá biểu thức số học. D D. Tìm kiếm đường đi ngắn nhất trong đồ thị. Câu 2 2. Trong đồ thị (Graph), thuật toán nào sau đây được sử dụng để 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? A A. Tìm kiếm theo chiều rộng (Breadth-First Search) B B. Tìm kiếm theo chiều sâu (Depth-First Search) C C. Thuật toán Dijkstra D D. Thuật toán Prim Câu 3 3. Kỹ thuật 'chia để trị' (Divide and Conquer) được sử dụng trong thuật toán sắp xếp nào sau đây? A A. Sắp xếp chèn (Insertion Sort) B B. Sắp xếp chọn (Selection Sort) C C. Sắp xếp nhanh (Quick Sort) D D. Sắp xếp nổi bọt (Bubble Sort) Câu 4 4. Giải thuật tìm kiếm nào sau đây hoạt động hiệu quả nhất trên dữ liệu đã đượ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 5 5. Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau mỗi lần duyệt qua mảng, phần tử nào sẽ được đặt đúng vị trí cuối cùng? A A. Phần tử nhỏ nhất. B B. Phần tử lớn nhất. C C. Phần tử ở giữa. D D. Không có phần tử nào chắc chắn được đặt đúng vị trí. Câu 6 6. Trong cấu trúc dữ liệu đồ thị, ma trận kề (adjacency matrix) phù hợp nhất để biểu diễn loại đồ thị nào? A A. Đồ thị thưa (Sparse graph). B B. Đồ thị dày (Dense graph). C C. Cả đồ thị thưa và đồ thị dày đều phù hợp. D D. Không phù hợp với bất kỳ loại đồ thị nào. Câu 7 7. Khi nào thì thuật toán sắp xếp nhanh (Quick Sort) hoạt động kém hiệu quả nhất? A A. Khi dữ liệu đã được sắp xếp hoặc gần sắp xếp. B B. Khi dữ liệu có kích thước lớn. C C. Khi dữ liệu chứa nhiều phần tử trùng lặp. D D. Khi bộ nhớ không đủ. Câu 8 8. Trong thuật toán tìm kiếm theo chiều rộng (BFS), cấu trúc dữ liệu nào được sử dụng để 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. Cây nhị phân tìm kiếm (Binary Search Tree) D D. Danh sách liên kết (Linked List) Câu 9 9. Hạn chế chính của việc sử dụng cây nhị phân tìm kiếm (Binary Search Tree) là gì? A A. Khó cài đặt. B B. Không hiệu quả với dữ liệu lớn. C C. Có thể trở nên mất cân bằng, dẫn đến độ phức tạp thời gian xấu nhất là O(n). D D. Chỉ hoạt động với dữ liệu số. Câu 10 10. Trong cây, duyệt theo thứ tự giữa (In-order traversal) thường được sử dụng để làm gì trong cây nhị phân tìm kiếm? A A. Sao chép cây. B B. Xóa cây. C C. In ra các phần tử của cây theo thứ tự tăng dần. D D. Tìm kiếm phần tử lớn nhất. Câu 11 11. Độ 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à bao nhiêu? A A. O(n^2) B B. O(log n) C C. O(n log n) D D. O(n) Câu 12 12. Cấu trúc dữ liệu nào sau đây thường được sử dụng để cài đặt chức năng 'undo' trong các ứng dụng phần mềm? A A. Hàng đợi (Queue) B B. Ngăn xếp (Stack) C C. Cây nhị phân tìm kiếm (Binary Search Tree) D D. Bảng băm (Hash Table) Câu 13 13. Trong cây nhị phân tìm kiếm, thao tác nào sau đây 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 (Search) D D. Sắp xếp các nút theo thứ tự tăng dần (In-order traversal to get sorted elements) Câu 14 14. Cấu trúc dữ liệu nào sau đây sử dụng hàm băm (hash function) để ánh xạ khóa tới giá trị? A A. Cây nhị phân tìm kiếm (Binary Search Tree) B B. Danh sách liên kết (Linked List) C C. Bảng băm (Hash Table) D D. Hàng đợi (Queue) Câu 15 15. Cấu trúc dữ liệu nào sau đây cho phép truy cập ngẫu nhiên (random access) các phần tử với độ phức tạp 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. Ngăn xếp (Stack) Câu 16 16. Độ 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à bao nhiêu? A A. O(n) B B. O(log n) C C. O(1) D D. O(n log n) Câu 17 17. Phương pháp lập trình động (Dynamic Programming) thường được áp dụng để giải quyết loại bài toán nào? A A. Bài toán sắp xếp. B B. Bài toán tìm kiếm. C C. Bài toán tối ưu hóa. D D. Bài toán duyệt đồ thị. Câu 18 18. Thuật toán nào sau đây tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh trong đồ thị có trọng số? A A. Thuật toán Dijkstra B B. Thuật toán Prim C C. Thuật toán Floyd-Warshall D D. Tìm kiếm theo chiều rộng (Breadth-First Search) Câu 19 19. Ư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ì? A A. Truy cập phần tử ngẫu nhiên nhanh hơn. B B. Sử dụng bộ nhớ hiệu quả hơn khi số lượng phần tử cố định. C C. Dễ dàng chèn và xóa phần tử ở giữa danh sách. D D. Tìm kiếm phần tử nhanh hơn. Câu 20 20. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình và xấu nhất đều là O(n log n)? A A. Sắp xếp nổi bọt (Bubble Sort) B B. Sắp xếp nhanh (Quick Sort) C C. Sắp xếp trộn (Merge Sort) D D. Sắp xếp chọn (Selection Sort) Câu 21 21. 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ị? A A. Thuật toán Dijkstra B B. Thuật toán Floyd-Warshall C C. Thuật toán Prim D D. Tìm kiếm theo chiều sâu (Depth-First Search) Câu 22 22. Độ 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à bao nhiêu? A A. O(n) B B. O(log n) C C. O(1) D D. O(n log n) Câu 23 23. Trong biểu đồ Big O, O(1) biểu thị độ phức tạp thời gian như thế nào? A A. Tuyến tính. B B. Logarit. C C. Hằng số. D D. Bậc hai. Câu 24 24. Cấu trúc dữ liệu nào sau đây 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. Cây nhị phân tìm kiếm (Binary Search Tree) Câu 25 25. Cấu trúc dữ liệu nào thích hợp nhất để 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 26 26. Thuật toán nào sau đây thuộc loại 'tham lam' (Greedy)? A A. Sắp xếp trộn (Merge Sort) B B. Thuật toán Dijkstra C C. Lập trình động (Dynamic Programming) D D. Tìm kiếm nhị phân (Binary Search) Câu 27 27. Trong cây AVL, thao tác cân bằng cây (tree balancing) được thực hiện khi nào? A A. Sau mỗi thao tác tìm kiếm. B B. Sau mỗi thao tác chèn hoặc xóa nút. C C. Khi cây trở nên quá lớn. D D. Không cần thực hiện thao tác cân bằng cây. Câu 28 28. Thuật toán sắp xếp nào sau đây hoạt động dựa trên việc so sánh và đổi chỗ các phần tử lân cận nếu chúng không đúng thứ tự? A A. Sắp xếp chọn (Selection Sort) B B. Sắp xếp chèn (Insertion Sort) C C. Sắp xếp nổi bọt (Bubble Sort) D D. Sắp xếp trộn (Merge Sort) Câu 29 29. Độ 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? A A. O(1) B B. O(log n) C C. O(n) D D. O(n log n) Câu 30 30. Khi nào thì nên sử dụng danh sách liên kết đôi (Doubly Linked List) thay vì danh sách liên kết đơn (Singly Linked List)? A A. Khi cần tiết kiệm bộ nhớ. B B. Khi cần duyệt danh sách theo cả hai chiều (từ đầu đến cuối và từ cuối lên đầu). C C. Khi cần truy cập phần tử ở giữa danh sách nhanh hơn. D D. Khi cần sắp xếp danh sách nhanh hơn. Đề 3 – Bài tập, đề thi trắc nghiệm online Quản lý bán hàng Đề 5 – Bài tập, đề thi trắc nghiệm online Quản trị nguồn nhân lực