Bộ 7 - 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' dùng để biểu diễn điều gì?
💡 Lời giải chi tiết:
Theo phân tích phổ biến trong khoa học máy tính, ký hiệu Big O được sử dụng để mô tả giới hạn trên của một hàm số, tương ứng với thời gian chạy tối đa mà thuật toán có thể thực hiện. Kết luận Lý giải: Giới hạn trên của thời gian chạy trong trường hợp xấu nhất.
Câu 2:Cấu trúc dữ liệu nào hoạt động theo nguyên tắc 'Vào sau, Ra trước' (LIFO)?
💡 Lời giải chi tiết:
Ngăn xếp là một cấu trúc dữ liệu trừu tượng mà trong đó các phần tử được thêm vào và loại bỏ từ cùng một đầu, tuân thủ nguyên tắc Last-In, First-Out. Kết luận Lý giải: Ngăn xếp (Stack).
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) trên một mảng đã sắp xếp là bao nhiêu?
💡 Lời giải chi tiết:
Thuật toán tìm kiếm nhị phân chia đôi không gian tìm kiếm sau mỗi bước thực hiện, 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 danh sách liên kết đơn (Singly Linked List), thao tác nào sau đây có độ phức tạp thời gian là O(1) nếu đã biết con trỏ của nút hiện tại?
💡 Lời giải chi tiết:
Khi đã có con trỏ đến một nút, việc xóa nút kế tiếp chỉ yêu cầu thay đổi liên kết của nút hiện tại trỏ đến nút sau nút bị xóa, một thao tác tốn thời gian hằng số. Kết luận Lý giải: Xóa nút đứng ngay sau nút hiện tại.
Câu 5:Cấu trúc dữ liệu hàng đợi (Queue) thường được ứng dụng trong trường hợp nào sau đây?
💡 Lời giải chi tiết:
Hàng đợi tuân theo nguyên tắc FIFO (vào trước ra trước), rất phù hợp để quản lý các tác vụ hoặc tiến trình chờ được xử lý theo trình tự thời gian. Kết luận Lý giải: Điều phối tiến trình trong hệ điều hành (Scheduling).
Câu 6:Một cây nhị phân tìm kiếm (BST) có đặc điểm gì quan trọng về giá trị của các nút?
💡 Lời giải chi tiết:
Theo định nghĩa của cây nhị phân tìm kiếm, mọi nút trong cây con bên trái đều có giá trị nhỏ hơn nút hiện tại và mọi nút trong cây con bên phải đều có giá trị lớn hơn. Kết luận Lý giải: Nút con bên trái nhỏ hơn nút gốc, nút con bên phải lớn hơn nút gốc.
Câu 7:Thuật toán sắp xếp nào sau đây luôn có độ phức tạp thời gian là O(n log n) trong mọi trường hợp (xấu nhất, tốt nhất, trung bình)?
💡 Lời giải chi tiết:
Sắp xếp trộn sử dụng chiến lược chia để trị và luôn chia mảng thành các phần bằng nhau, đảm bảo hiệu suất ổn định O(n log n) bất kể dữ liệu đầu vào. Kết luận Lý giải: Sắp xếp trộn (Merge Sort).
Câu 8:Độ phức tạp thời gian khi truy cập một phần tử tại vị trí bất kỳ trong mảng (Array) bằng chỉ số là bao nhiêu?
💡 Lời giải chi tiết:
Mảng lưu trữ các phần tử liên tiếp trong bộ nhớ, cho phép tính toán địa chỉ của bất kỳ phần tử nào dựa trên chỉ số trong thời gian hằng số. Kết luận Lý giải: O(1).
Câu 9:Trong đồ thị, thuật toán duyệt theo chiều rộng (BFS) sử dụng cấu trúc dữ liệu bổ trợ nào?
💡 Lời giải chi tiết:
Thuật toán BFS khám phá các đỉnh theo từng mức, yêu cầu một hàng đợi để lưu trữ các đỉnh đã phát hiện nhưng chưa được khám phá hết các đỉnh kề. Kết luận Lý giải: Hàng đợi (Queue).
Câu 10:Đặc điểm nào sau đây là của cây AVL?
💡 Lời giải chi tiết:
Cây AVL là một loại cây nhị phân tìm kiếm duy trì tính cân bằng bằng cách đảm bảo độ lệch chiều cao giữa hai cây con của bất kỳ nút nào không vượt quá một. Kết luận Lý giải: Là cây nhị phân tìm kiếm tự cân bằng.
Câu 11:Thuật toán sắp xếp nào có hiệu suất tốt nhất khi mảng đầu vào đã gần như được sắp xếp?
💡 Lời giải chi tiết:
Sắp xếp chèn chỉ tốn O(n) thời gian khi mảng đã sắp xếp vì nó chỉ thực hiện một lần kiểm tra cho mỗi phần tử mà không cần di chuyển dữ liệu. Kết luận Lý giải: Sắp xếp chèn (Insertion Sort).
Câu 12:Trong bảng băm (Hash Table), hiện tượng nhiều khóa khác nhau cùng ánh xạ vào một vị trí trong bảng được gọi là gì?
💡 Lời giải chi tiết:
Xung đột băm xảy ra khi hàm băm tạo ra cùng một giá trị chỉ số cho hai hoặc nhiều khóa khác nhau trong bảng băm. Kết luận Lý giải: Xung đột (Collision).
Câu 13:Phương pháp 'Dò tuyến tính' (Linear Probing) được sử dụng để giải quyết vấn đề gì?
💡 Lời giải chi tiết:
Dò tuyến tính là một kỹ thuật địa chỉ mở, tìm kiếm vị trí trống tiếp theo trong bảng băm khi xảy ra xung đột. Kết luận Lý giải: Giải quyết xung đột trong bảng băm.
Câu 14:Thuật toán Dijkstra được sử dụng để giải quyết bài toán nào trên đồ thị?
💡 Lời giải chi tiết:
Thuật toán Dijkstra là một thuật toán tham lam tìm đường đi ngắn nhất từ một đỉnh bắt đầu đến tất cả các đỉnh khác trong đồ thị có trọng số không âm. Kết luận Lý giải: Tìm đường đi ngắn nhất từ một đỉnh nguồn đến các đỉnh còn lại.
Câu 15:Trong biểu diễn đồ thị bằng 'Ma trận kề' (Adjacency Matrix), nếu đồ thị có V đỉnh, kích thước của ma trận là bao nhiêu?
💡 Lời giải chi tiết:
Ma trận kề sử dụng một mảng hai chiều kích thước V hàng và V cột để biểu diễn sự tồn tại của các cạnh giữa các cặp đỉnh. Kết luận Lý giải: V x V.
Câu 16:Khi duyệt cây theo thứ tự 'Giữa' (In-order) trên một cây nhị phân tìm kiếm, kết quả thu được là gì?
💡 Lời giải chi tiết:
Duyệt theo thứ tự giữa (Trái - Gốc - Phải) trên cây BST sẽ thăm các nút theo giá trị từ nhỏ đến lớn do tính chất cấu trúc của cây. Kết luận Lý giải: Dãy các giá trị tăng dần.
Câu 17:Cấu trúc dữ liệu 'Heap' thường được sử dụng để triển khai cấu trúc dữ liệu nào sau đây một cách hiệu quả?
💡 Lời giải chi tiết:
Cấu trúc Heap (Min-heap hoặc Max-heap) cho phép truy cập phần tử có ưu tiên cao nhất trong thời gian O(1) và cập nhật trong O(log n), rất lý tưởng cho hàng đợi ưu tiên. Kết luận Lý giải: Hàng đợi ưu tiên (Priority Queue).
Câu 18:Trường hợp xấu nhất của thuật toán sắp xếp nhanh (Quick Sort) xảy ra khi nào?
💡 Lời giải chi tiết:
Nếu phần tử chốt luôn nằm ở biên, thuật toán sẽ không chia nhỏ được bài toán một cách hiệu quả, dẫn đến độ phức tạp O(n^2). Kết luận Lý giải: Phần tử chốt luôn là giá trị lớn nhất hoặc nhỏ nhất của mảng.
Câu 19:Trong một 'Danh sách liên kết đôi' (Doubly Linked List), mỗi nút chứa bao nhiêu con trỏ liên kết?
💡 Lời giải chi tiết:
Mỗi nút trong danh sách liên kết đôi chứa một con trỏ trỏ đến nút kế tiếp và một con trỏ trỏ về nút phía trước. Kết luận Lý giải: 2 con trỏ.
Câu 20:Độ phức tạp không gian (Space Complexity) của thuật toán sắp xếp trộn (Merge Sort) thông thường là bao nhiêu?
💡 Lời giải chi tiết:
Sắp xếp trộn yêu cầu một mảng phụ có kích thước bằng mảng gốc để thực hiện quá trình trộn các mảng con đã sắp xếp. Kết luận Lý giải: O(n).
Câu 21:Định nghĩa nào sau đây đúng về 'Cây nhị phân đầy đủ' (Full Binary Tree)?
💡 Lời giải chi tiết:
Cây nhị phân đầy đủ là cây mà trong đó mỗi nút hoặc là nút lá (0 con) hoặc có đúng 2 nút con. Kết luận Lý giải: Mỗi nút có 0 hoặc 2 nút con.
Câu 22:Kỹ thuật 'Đệ quy' (Recursion) sử dụng cấu trúc dữ liệu nào trong bộ nhớ hệ thống để quản lý các lời gọi hàm?
💡 Lời giải chi tiết:
Khi một hàm đệ quy được gọi, thông tin về ngữ cảnh của lời gọi hàm đó được đẩy vào ngăn xếp hệ thống (Call Stack). Kết luận Lý giải: Ngăn xếp (Stack).
Câu 23:Thuật toán Prim và thuật toán Kruskal được sử dụng để giải quyết bài toán nào?
💡 Lời giải chi tiết:
Cả Prim và Kruskal đều là các thuật toán tham lam nhằm tìm ra một tập hợp các cạnh kết nối tất cả các đỉnh với tổng trọng số nhỏ nhất mà không tạo thành chu trình. Kết luận Lý giải: Tìm cây khung nhỏ nhất của đồ thị.
Câu 24:Trong một mảng lưu trữ 'Cây nhị phân hoàn chỉnh' bắt đầu từ chỉ số 0, nút con trái của nút tại vị trí 'i' nằm ở đâu?
💡 Lời giải chi tiết:
Theo quy tắc lưu trữ cây nhị phân hoàn chỉnh trong mảng, nút tại chỉ số i sẽ có nút con trái tại 2i + 1 và nút con phải tại 2i + 2. Kết luận Lý giải: 2i + 1.
Câu 25:Giải thuật 'Tham lam' (Greedy Algorithm) có đặc điểm chính là gì?
💡 Lời giải chi tiết:
Giải thuật tham lam đưa ra quyết định tốt nhất tại thời điểm hiện tại mà không xem xét lại các quyết định đã thực hiện hoặc hậu quả tương lai. Kết luận Lý giải: Luôn chọn lựa chọn tối ưu cục bộ tại mỗi bước với hy vọng tìm được tối ưu toàn cục.