Bộ 8 - Trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án
Thời gian còn lại: --:--
Kết quả của bạn:
Bạn đã đúng:
Bạn đã sai:
Tổng số câu:
Câu 1:Trong phân tích độ phức tạp thuật toán, ký hiệu Big O (O) được sử dụng để đại diện cho điều gì?
💡 Lời giải chi tiết:
Theo phân tích toán học trong cấu trúc dữ liệu, Big O mô tả giới hạn trên của một hàm số nhằm biểu diễn độ phức tạp thời gian hoặc không gian trong kịch bản xấu nhất. Kết luận Lý giải: Giới hạn trên của thời gian chạy hoặc không gian bộ nhớ trong trường hợp xấu nhất.
Câu 2:Cấu trúc dữ liệu Ngăn xếp (Stack) hoạt động theo nguyên lý nào sau đây?
💡 Lời giải chi tiết:
Ngăn xếp là một cấu trúc dữ liệu tuyến tính nơi các thao tác thêm và xóa phần tử chỉ thực hiện tại một đầu, dẫn đến việc phần tử cuối cùng được thêm vào sẽ là phần tử đầu tiên bị lấy ra. Kết luận Lý giải: LIFO (Last In, First Out).
Câu 3:Độ phức tạp thời gian trung bình của thuật toán Tìm kiếm nhị phân (Binary Search) là bao nhiêu?
💡 Lời giải chi tiết:
Tìm kiếm nhị phân hoạt động bằng cách chia đôi không gian tìm kiếm sau mỗi bước so sánh, dẫn đến số bước thực hiện tối đa tỷ lệ thuận với logarit cơ số 2 của số phần tử. Kết luận Lý giải: O(log n).
Câu 4:Trong một Cây nhị phân tìm kiếm (BST), phát biểu nào sau đây luôn đúng đối với mọi nút?
💡 Lời giải chi tiết:
Theo định nghĩa của cây nhị phân tìm kiếm, thuộc tính quan trọng nhất là giá trị của tất cả các nút ở cây con trái phải nhỏ hơn nút gốc và giá trị của các nút ở cây con phải phải lớn hơn nút gốc. Kết luận Lý giải: Giá trị nút con trái nhỏ hơn nút gốc và giá trị nút con phải lớn hơn nút gốc.
Câu 5:Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trong trường hợp xấu nhất là O(n^2)?
💡 Lời giải chi tiết:
Mặc dù có thời gian trung bình rất nhanh, Quick Sort sẽ rơi vào trường hợp xấu nhất O(n^2) khi việc chọn phần tử chốt (pivot) làm phân vùng bị mất cân bằng nghiêm trọng, ví dụ như trên mảng đã sắp xếp. Kết luận Lý giải: Quick Sort.
Câu 6:Cấu trúc dữ liệu nào thường được sử dụng để triển khai thuật toán Tìm kiếm theo chiều rộng (BFS) trên đồ thị?
💡 Lời giải chi tiết:
Thuật toán BFS duyệt các đỉnh theo từng cấp độ xa dần từ đỉnh xuất phát, do đó cần một hàng đợi để lưu trữ các đỉnh đã phát hiện nhưng chưa được duyệt các đỉnh kề. Kết luận Lý giải: Hàng đợi (Queue).
Câu 7:Ưu điểm chính của Danh sách liên kết so với Mảng tĩnh là gì?
💡 Lời giải chi tiết:
Danh sách liên kết không yêu cầu các khối nhớ liên tục và cho phép thay đổi kích thước dễ dàng cũng như chèn hoặc xóa phần tử chỉ bằng cách thay đổi liên kết của các con trỏ. Kết luận Lý giải: Kích thước linh hoạt và thao tác chèn/xóa tại vị trí biết trước hiệu quả hơn.
Câu 8:Trong bảng băm, phương pháp 'Chaining' được sử dụng để làm gì?
💡 Lời giải chi tiết:
Chaining giải quyết xung đột bằng cách lưu trữ tất cả các phần tử có cùng giá trị băm vào một danh sách liên kết tại vị trí chỉ mục tương ứng trong bảng băm. Kết luận Lý giải: Xử lý xung đột khi hai khóa khác nhau có cùng giá trị băm.
Câu 9:Đồ thị có hướng không có chu trình thường được gọi tắt là gì?
💡 Lời giải chi tiết:
Một đồ thị có hướng mà không chứa bất kỳ đường đi nào bắt đầu từ một đỉnh và quay trở lại chính nó được định nghĩa là một đồ thị có hướng không chu trình. Kết luận Lý giải: DAG (Directed Acyclic Graph).
Câu 10:Thuật toán Dijkstra được sử dụng để giải quyết bài toán nào sau đây?
💡 Lời giải chi tiết:
Thuật toán Dijkstra là một thuật toán tham lam phổ biến dùng để tìm đường đi có tổng trọng số cạnh nhỏ nhất từ một đỉnh gốc tới mọi đỉnh còn lại trong đồ thị không có cạnh trọng số âm. Kết luận Lý giải: Tìm đường đi ngắn nhất từ một đỉnh nguồn đến tất cả các đỉnh khác trong đồ thị trọng số không âm.
Câu 11:Thứ tự duyệt 'Tiền thứ tự' (Pre-order Traversal) trên cây nhị phân là gì?
💡 Lời giải chi tiết:
Duyệt tiền thứ tự bắt đầu bằng việc thăm nút gốc hiện tại, sau đó duyệt đệ quy cây con bên trái và cuối cùng là duyệt đệ quy cây con bên phải. Kết luận Lý giải: Gốc - Trái - Phải.
Câu 12:Một 'Max-Heap' là một cây nhị phân hoàn chỉnh có đặc điểm gì?
💡 Lời giải chi tiết:
Cấu trúc dữ liệu Max-Heap duy trì thuộc tính heap trong đó khóa của mọi nút cha phải lớn hơn hoặc bằng khóa của các nút con, đảm bảo phần tử lớn nhất luôn nằm ở gốc. Kết luận Lý giải: Giá trị của nút cha luôn lớn hơn hoặc bằng giá trị các nút con của nó.
Câu 13:Độ phức tạp không gian (Space Complexity) của thuật toán sắp xếp Trộn (Merge Sort) là bao nhiêu?
💡 Lời giải chi tiết:
Trong quá trình thực hiện, thuật toán Merge Sort cần tạo ra các mảng phụ để tạm lưu dữ liệu trong bước trộn, do đó yêu cầu thêm không gian bộ nhớ tỷ lệ thuận với số lượng phần tử đầu vào. Kết luận Lý giải: O(n).
Câu 14:Thuật toán nào sau đây được sử dụng để tìm Cây khung nhỏ nhất (Minimum Spanning Tree) của một đồ thị?
💡 Lời giải chi tiết:
Cả thuật toán Prim và Kruskal đều là những thuật toán chuẩn để tìm cây khung nhỏ nhất của một đồ thị vô hướng có trọng số. Kết luận Lý giải: Thuật toán Prim.
Câu 15:Trong một danh sách liên kết đơn, thao tác nào sau đây có độ phức tạp thời gian là O(1)?
💡 Lời giải chi tiết:
Việc chèn một nút vào sau một nút đã biết trong danh sách liên kết đơn chỉ yêu cầu thay đổi liên kết của hai con trỏ, không phụ thuộc vào kích thước danh sách. Kết luận Lý giải: Chèn một phần tử mới vào ngay sau một nút đã biết.
Câu 16:Cây AVL là một loại cây nhị phân tìm kiếm có đặc điểm gì đặc biệt?
💡 Lời giải chi tiết:
Cây AVL là cây nhị phân tìm kiếm tự cân bằng đầu tiên được phát minh, nơi điều kiện cân bằng dựa trên sự chênh lệch chiều cao của các cây con. Kết luận Lý giải: Hiệu chiều cao giữa cây con trái và cây con phải của mọi nút không quá 1.
Câu 17:Hàng đợi ưu tiên (Priority Queue) thường được triển khai hiệu quả nhất bằng cấu trúc dữ liệu nào?
💡 Lời giải chi tiết:
Cấu trúc dữ liệu Heap cho phép thao tác chèn và lấy ra phần tử có ưu tiên cao nhất với độ phức tạp logarit, giúp nó trở thành lựa chọn tối ưu để cài đặt hàng đợi ưu tiên. Kết luận Lý giải: Heap (đống).
Câu 18:Thuật toán sắp xếp nào dựa trên nguyên lý 'Chia để trị' (Divide and Conquer)?
💡 Lời giải chi tiết:
Sắp xếp Trộn hoạt động bằng cách chia mảng thành các mảng con nhỏ hơn cho đến khi không chia được nữa, sau đó giải quyết và trộn chúng lại để có kết quả sắp xếp cuối cùng. Kết luận Lý giải: Sắp xếp Trộn (Merge Sort).
Câu 19:Trong một đồ thị vô hướng, 'bậc' của một đỉnh được định nghĩa là gì?
💡 Lời giải chi tiết:
Bậc của một đỉnh trong đồ thị vô hướng chính là tổng số các cạnh liên thuộc với đỉnh đó, tương đương với số lượng đỉnh láng giềng trực tiếp. Kết luận Lý giải: Số lượng các cạnh kết nối trực tiếp với đỉnh đó.
Câu 20:Điều kiện cần thiết để thực hiện thuật toán Tìm kiếm nhị phân trên một mảng là gì?
💡 Lời giải chi tiết:
Thuật toán tìm kiếm nhị phân dựa trên việc loại bỏ một nửa phạm vi tìm kiếm dựa trên sự so sánh, điều này chỉ khả thi nếu dữ liệu đầu vào đã được sắp xếp. Kết luận Lý giải: Mảng phải được sắp xếp theo một thứ tự xác định.
Câu 21:Hàm băm (Hash Function) tốt nên có đặc điểm nào sau đây?
💡 Lời giải chi tiết:
Một hàm băm hiệu quả cần tối thiểu hóa xung đột bằng cách phân tán các khóa đầu vào một cách đồng nhất vào các vị trí khác nhau trong bảng băm. Kết luận Lý giải: Phân phối các giá trị băm đồng đều trên không gian bảng băm.
Câu 22:Độ phức tạp thời gian 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 đúng thứ tự là bao nhiêu?
💡 Lời giải chi tiết:
Khi mảng đã được sắp xếp, thuật toán sắp xếp chèn chỉ cần thực hiện một phép so sánh cho mỗi phần tử mà không cần dịch chuyển, dẫn đến độ phức tạp tuyến tính. Kết luận Lý giải: O(n).
Câu 23:Trong cấu trúc dữ liệu Đồ thị, Ma trận kề (Adjacency Matrix) của một đồ thị có V đỉnh và E cạnh yêu cầu bao nhiêu không gian bộ nhớ?
💡 Lời giải chi tiết:
Ma trận kề biểu diễn các mối quan hệ giữa mọi cặp đỉnh bằng một mảng hai chiều kích thước V nhân V, bất kể số lượng cạnh thực tế là bao nhiêu. Kết luận Lý giải: O(V^2).
Câu 24:Thuật toán tìm kiếm theo chiều sâu (DFS) thường sử dụng cấu trúc dữ liệu nào để lưu trữ trạng thái các đỉnh?
💡 Lời giải chi tiết:
DFS khám phá dọc theo một nhánh xa nhất có thể trước khi quay lui, một hành vi được mô phỏng tự nhiên bằng cách sử dụng ngăn xếp hoặc đệ quy hệ thống. Kết luận Lý giải: Ngăn xếp (Stack).
Câu 25:Số lượng nút tối đa của một cây nhị phân có chiều cao h (với gốc ở chiều cao 0) là bao nhiêu?
💡 Lời giải chi tiết:
Trong một cây nhị phân đầy đủ, tầng i có tối đa 2^i nút, do đó tổng số nút tối đa cho đến tầng h là tổng của cấp số nhân từ 2^0 đến 2^h. Kết luận Lý giải: 2^(h+1) - 1.