Bộ 9 - 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 thuật toán, độ phức tạp thời gian trường hợp 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:
Theo phân tích phổ biến, thuật toán tìm kiếm nhị phân chia đôi phạm vi tìm kiếm sau mỗi lần so sánh nên có độ phức tạp thời gian là O(log n). Kết luận Lý giải: O(log n).
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:
Theo định nghĩa cơ bản, ngăn xếp là cấu trúc dữ liệu mà phần tử được đưa vào cuối cùng sẽ là phần tử đầu tiên được lấy ra. Kết luận Lý giải: LIFO (Last In First Out).
Câu 3:Trong cấu trúc dữ liệu hàng đợi (Queue), thao tác lấy một phần tử ra khỏi hàng đợi thường được gọi là gì?
💡 Lời giải chi tiết:
Theo thuật ngữ chuẩn trong cấu trúc dữ liệu, Enqueue là thêm phần tử vào và Dequeue là lấy phần tử ra khỏi hàng đợi. Kết luận Lý giải: Dequeue.
Câu 4:Ưu điểm lớn nhất của danh sách liên kết (Linked List) so với mảng (Array) là gì?
💡 Lời giải chi tiết:
Theo đặc tính kỹ thuật, danh sách liên kết cho phép thay đổi kích thước linh hoạt mà không cần cấp phát lại toàn bộ bộ nhớ như mảng tĩnh. Kết luận Lý giải: Kích thước có thể thay đổi linh hoạt trong quá trình thực thi.
Câu 5:Trong một cây tìm kiếm nhị phân (BST), thuộc tính 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 tìm kiếm nhị phân, mọi nút trong cây con trái đều nhỏ hơn nút gốc và mọi nút trong cây con phải đều 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 và giá trị nút con phải lớn hơn nút gốc.
Câu 6:Thuật toán sắp xếp nào sau đây được coi là 'Stable' (Ổn định)?
💡 Lời giải chi tiết:
Theo phân tích thuật toán, Merge Sort bảo toàn thứ tự tương đối của các phần tử có giá trị bằng nhau nên được gọi là thuật toán sắp xếp ổn định. Kết luận Lý giải: Merge Sort.
Câu 7:Để biểu diễn một đồ thị có n đỉnh và rất ít cạnh (đồ thị thưa), cách biểu diễn nào tiết kiệm bộ nhớ nhất?
💡 Lời giải chi tiết:
Theo lý thuyết đồ thị, danh sách kề chỉ lưu trữ các cạnh thực tế tồn tại nên hiệu quả về bộ nhớ hơn ma trận kề đối với đồ thị thưa. Kết luận Lý giải: Danh sách kề (Adjacency List).
Câu 8:Điều kiện cần thiết để một hàm đệ quy không rơi vào trạng thái lặp vô hạn là gì?
💡 Lời giải chi tiết:
Theo nguyên lý đệ quy, điểm dừng là điều kiện bắt buộc để hàm kết thúc và tránh việc gọi lại chính nó vô hạn lần. Kết luận Lý giải: Phải có điểm dừng (Base case).
Câu 9:Thuật toán sắp xếp nhanh (Quick Sort) rơi vào trường hợp xấu nhất với độ phức tạp O(n^2) khi nào?
💡 Lời giải chi tiết:
Theo phân tích kỹ thuật, Quick Sort với cách chọn phần tử chốt đầu hoặc cuối sẽ đạt độ phức tạp O(n^2) nếu dữ liệu đã có thứ tự. Kết luận Lý giải: Dãy đầu vào đã được sắp xếp hoặc sắp xếp ngược.
Câu 10:Trong cấu trúc dữ liệu Heap tối đại (Max-Heap), phần tử có giá trị lớn nhất luôn nằm ở vị trí nào?
💡 Lời giải chi tiết:
Theo định nghĩa của Max-Heap, giá trị của nút cha luôn lớn hơn hoặc bằng giá trị các nút con, dẫn đến phần tử lớn nhất luôn nằm ở gốc. Kết luận Lý giải: Nút gốc (Root).
Câu 11:Độ phức tạp không gian (Space Complexity) của thuật toán đệ quy chủ yếu phụ thuộc vào yếu tố nào?
💡 Lời giải chi tiết:
Theo cơ chế thực thi, mỗi lần gọi đệ quy sẽ tiêu tốn một không gian trên ngăn xếp hệ thống cho đến khi đạt tới điểm dừng. Kết luận Lý giải: Độ sâu tối đa của ngăn xếp hệ thống (Stack depth).
Câu 12:Trong bảng băm (Hash Table), kỹ thuật 'Linear Probing' được sử dụng để giải quyết vấn đề gì?
💡 Lời giải chi tiết:
Theo kỹ thuật xử lý xung đột băm, Linear Probing tìm kiếm vị trí trống tiếp theo trong bảng băm khi xảy ra va chạm. Kết luận Lý giải: Giải quyết xung đột (Collision) khi hai khóa băm cùng một vị trí.
Câu 13:Phép duyệt cây theo thứ tự 'In-order' trên một cây tìm kiếm nhị phân sẽ cho kết quả là một dãy các giá trị như thế nào?
💡 Lời giải chi tiết:
Theo tính chất của cây tìm kiếm nhị phân, phép duyệt trung thứ tự (trái - gốc - phải) luôn trả về các giá trị theo thứ tự không giảm. Kết luận Lý giải: Dãy các giá trị tăng dần.
Câu 14:Thuật toán Dijkstra được sử dụng để giải quyết bài toán nào sau đây trên đồ thị?
💡 Lời giải chi tiết:
Theo lý thuyết đồ thị, Dijkstra là thuật toán phổ biến nhất để tìm đường đi ngắn nhất từ một nguồn đơn đến 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 đến tất cả các đỉnh khác.
Câu 15:Lợi ích chính của danh sách liên kết vòng (Circular Linked List) là gì?
💡 Lời giải chi tiết:
Theo cấu trúc liên kết, trong danh sách liên kết vòng, nút cuối cùng trỏ về nút đầu tiên giúp việc duyệt toàn bộ danh sách có thể bắt đầu từ bất cứ đâu. Kết luận Lý giải: Có thể truy cập bất kỳ nút nào từ một nút bất kỳ bằng cách duyệt tiếp.
Câu 16:Trong các thuật toán sắp xếp sau, thuật toán nào có độ phức tạp thời gian trường hợp xấu nhất là O(n log n)?
💡 Lời giải chi tiết:
Theo phân tích toán học, Merge Sort luôn chia đôi mảng và thực hiện trộn với chi phí ổn định là O(n log n) trong mọi trường hợp. Kết luận Lý giải: Merge Sort.
Câu 17:Để tính giá trị của một biểu thức dưới dạng hậu tố (Postfix), cấu trúc dữ liệu nào thường được sử dụng hiệu quả nhất?
💡 Lời giải chi tiết:
Theo thuật toán đánh giá biểu thức, ngăn xếp được dùng để lưu trữ các toán hạng và lấy ra thực hiện phép tính khi gặp toán tử. Kết luận Lý giải: Ngăn xếp (Stack).
Câu 18:Chiều cao của một cây nhị phân cân bằng hoàn toàn với n nút là bao nhiêu?
💡 Lời giải chi tiết:
Theo đặc điểm hình học của cây, một cây nhị phân cân bằng có chiều cao tỷ lệ thuận với logarit cơ số 2 của số lượng nút. Kết luận Lý giải: O(log n).
Câu 19:Thuật toán duyệt đồ thị theo chiều sâu (DFS) thường sử dụng cấu trúc dữ liệu nào để quản lý các đỉnh chưa thăm?
💡 Lời giải chi tiết:
Theo cơ chế hoạt động, DFS ưu tiên đi sâu nhất có thể, phù hợp với nguyên lý LIFO của ngăn xếp hoặc ngăn xếp đệ quy. Kết luận Lý giải: Ngăn xếp (Stack).
Câu 20:Độ phức tạp thời gian để truy cập một phần tử tại một chỉ số bất kỳ trong mảng (Array) là bao nhiêu?
💡 Lời giải chi tiết:
Theo cấu trúc bộ nhớ của mảng, địa chỉ của bất kỳ phần tử nào cũng được tính toán trực tiếp từ địa chỉ gốc và chỉ số, cho phép truy cập tức thời. Kết luận Lý giải: O(1).
Câu 21:Nguyên lý hoạt động chính của thuật toán sắp xếp chọn (Selection Sort) là gì?
💡 Lời giải chi tiết:
Theo định nghĩa, Selection Sort liên tục tìm kiếm giá trị nhỏ nhất từ phần chưa sắp xếp và hoán đổi nó với vị trí đầu tiên của phần đó. Kết luận Lý giải: Tìm phần tử nhỏ nhất trong dãy chưa sắp xếp và đưa về đầu dãy.
Câu 22:Khái niệm 'Memoization' trong giải thuật quy hoạch động (Dynamic Programming) có mục đích gì?
💡 Lời giải chi tiết:
Theo phương pháp tối ưu hóa, Memoization giúp cải thiện hiệu suất bằng cách ghi nhớ kết quả của các lần gọi hàm trùng lặp trong cấu trúc dữ liệu đệm. Kết luận Lý giải: 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âu 23:Trong cấu trúc cây, một nút không có bất kỳ nút con nào được gọi là gì?
💡 Lời giải chi tiết:
Theo thuật ngữ cấu trúc dữ liệu cây, các nút nằm ở cấp cuối cùng và không có nhánh con được gọi là nút lá. Kết luận Lý giải: Nút lá (Leaf node).
Câu 24:Kỹ thuật 'Chaining' trong bảng băm sử dụng cấu trúc dữ liệu nào để lưu trữ các phần tử bị xung đột tại cùng một vị trí băm?
💡 Lời giải chi tiết:
Theo phương pháp Chaining, mỗi vị trí trong bảng băm trỏ đến một danh sách liên kết chứa tất cả các phần tử có cùng giá trị băm. Kết luận Lý giải: Danh sách liên kết (Linked List).
Câu 25:Đặc điểm đặc trưng của thuật toán tham lam (Greedy Algorithm) là gì?
💡 Lời giải chi tiết:
Theo lý thuyết giải thuật, thuật toán tham lam đưa ra các lựa chọn tối ưu tại địa phương với hy vọng đạt được tối ưu toàn cầu. Kết luận Lý giải: Tại mỗi bước, chọn lựa phương án tốt nhất tại thời điểm đó (tối ưu cục bộ).