Bộ 3 - 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 cấu trúc dữ liệu mảng, độ phức tạp thời gian để truy cập một phần tử bất kỳ khi biết chỉ số (index) là bao nhiêu?
💡 Lời giải chi tiết:
Theo lý thuyết về mảng, việc truy cập phần tử qua chỉ số dựa trên tính toán địa chỉ trực tiếp nên tốn thời gian hằng số. Kết luận Lý giải: O(1)
Câu 2:Thành phần nào là bắt buộc phải có trong một giải thuật đệ quy để tránh hiện tượng lặp vô hạn?
💡 Lời giải chi tiết:
Một hàm đệ quy cần có điểm dừng để kết thúc việc gọi lại chính nó và bắt đầu quá trình trả về giá trị. Kết luận Lý giải: Điều kiện dừng (Base case)
Câu 3:Cấu trúc dữ liệu hàng đợi (Queue) hoạt động theo nguyên lý nào sau đây?
💡 Lời giải chi tiết:
Hàng đợi hoạt động theo nguyên tắc phần tử nào vào trước sẽ được lấy ra trước tương tự như xếp hàng thực tế. Kết luận Lý giải: FIFO (First In First Out)
Câu 4:Độ phức tạp thời gian trung bình của giải thuật sắp xếp nhanh (Quick Sort) là bao nhiêu?
💡 Lời giải chi tiết:
Quick Sort sử dụng chiến lược chia để trị và trong trường hợp trung bình, nó đạt hiệu suất tối ưu cho các thuật toán so sánh. Kết luận Lý giải: O(n log n)
Câu 5:Điều kiện tiên quyết để áp dụng giải thuật tìm kiếm nhị phân (Binary Search) trên một mảng là gì?
💡 Lời giải chi tiết:
Tìm kiếm nhị phân dựa trên việc so sánh phần tử giữa để loại bỏ một nửa không gian tìm kiếm, điều này chỉ đúng khi mảng đã có thứ tự. Kết luận Lý giải: Dữ liệu đã được sắp xếp
Câu 6:Trong trường hợp tốt nhất, độ phức tạp thời gian để tìm kiếm một phần tử trong bảng băm (Hash Table) là bao nhiêu?
💡 Lời giải chi tiết:
Nếu hàm băm tốt và không xảy ra va chạm, việc tìm kiếm phần tử trong bảng băm chỉ tốn thời gian tính toán địa chỉ duy nhất. Kết luận Lý giải: O(1)
Câu 7:Khi biểu diễn đồ thị có V đỉnh bằng ma trận kề, không gian bộ nhớ cần thiết là bao nhiêu?
💡 Lời giải chi tiết:
Ma trận kề là một mảng hai chiều kích thước V nhân V, do đó chiếm dụng không gian tỉ lệ thuận với bình phương số đỉnh. Kết luận Lý giải: O(V bình phương)
Câu 8:Độ dài đường đi dài nhất từ nút gốc đến một nút lá trong cây được gọi là gì?
💡 Lời giải chi tiết:
Theo định nghĩa trong lý thuyết cây, chiều cao là số cạnh tối đa tính từ nút gốc đến nút lá xa nhất. Kết luận Lý giải: Chiều cao của cây
Câu 9:Trong cây cân bằng AVL, sự chênh lệch chiều cao tối đa giữa cây con trái và cây con phải của bất kỳ nút nào là bao nhiêu?
💡 Lời giải chi tiết:
Cây AVL duy trì tính cân bằng bằng cách đảm bảo trị tuyệt đối của hệ số cân bằng tại mỗi nút không vượt quá đơn vị. Kết luận Lý giải: 1
Theo đặc tính của Max-Heap, mọi nút cha luôn có giá trị lớn hơn hoặc bằng các nút con của nó, dẫn đến nút gốc là lớn nhất. Kết luận Lý giải: Phần tử có giá trị lớn nhất
Câu 11:Ứng dụng phổ biến nhất của cấu trúc dữ liệu ngăn xếp (Stack) trong trình biên dịch là gì?
💡 Lời giải chi tiết:
Ngăn xếp thường được sử dụng để chuyển đổi và tính toán các biểu thức toán học do khả năng lưu trữ các toán hạng và toán tử theo đúng thứ tự ưu tiên. Kết luận Lý giải: Tính toán biểu thức hậu tố (Postfix)
Câu 12:Trong danh sách liên kết đơn, độ phức tạp thời gian để xóa phần tử đầu tiên là bao nhiêu?
💡 Lời giải chi tiết:
Việc xóa nút đầu chỉ yêu cầu cập nhật con trỏ đầu danh sách trỏ đến nút thứ hai, không phụ thuộc vào số lượng phần tử. Kết luận Lý giải: O(1)
Câu 13:Thuật toán Dijkstra dùng để giải quyết bài toán nào sau đây trên đồ thị?
💡 Lời giải chi tiết:
Thuật toán Dijkstra là giải thuật phổ biến nhất để tìm đường đi ngắn nhất từ một đỉnh nguồ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 giữa hai đỉnh
Câu 14:Độ phức tạp thời gian của việc tìm kiếm một phần tử trên cây nhị phân tìm kiếm (BST) trong trường hợp xấu nhất là bao nhiêu?
💡 Lời giải chi tiết:
Trong BST, quá trình tìm kiếm đi dọc theo một nhánh của cây, nên hiệu suất phụ thuộc trực tiếp vào chiều cao của cây đó. Kết luận Lý giải: O(h) với h là chiều cao của cây
Câu 15:Giải thuật sắp xếp nổi bọt (Bubble Sort) có độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?
💡 Lời giải chi tiết:
Bubble Sort sử dụng hai vòng lặp lồng nhau để so sánh và hoán đổi các cặp phần tử kề nhau, dẫn đến số phép so sánh tối đa là n bình phương. Kết luận Lý giải: O(n bình phương)
Câu 16:Giải thuật tìm kiếm theo chiều sâu (DFS) trên đồ thị thường được cài đặt bằng cách sử dụng cấu trúc dữ liệu nào?
💡 Lời giải chi tiết:
DFS ưu tiên đi sâu vào các đỉnh nhánh trước khi quay lại, do đó ngăn xếp (hoặc đệ quy) là cấu trúc phù hợp nhất để quản lý các đỉnh. Kết luận Lý giải: Ngăn xếp (Stack)
Câu 17:Giải thuật tìm kiếm theo chiều rộng (BFS) trên đồ thị sử dụng cấu trúc dữ liệu nào để quản lý các đỉnh sẽ thăm?
💡 Lời giải chi tiết:
BFS thăm các đỉnh theo từng mức độ xa dần, vì vậy hàng đợi giúp đảm bảo các đỉnh được thăm theo đúng thứ tự phát hiện. Kết luận Lý giải: Hàng đợi (Queue)
Câu 18:Đặc điểm cốt lõi của kỹ thuật Quy hoạch động (Dynamic Programming) là gì?
💡 Lời giải chi tiết:
Quy hoạch động tối ưu hóa việc tính toán bằng cách giải các bài toán con một lần và lưu trữ kết quả để sử dụng lại sau này. Kết luận Lý giải: Lưu trữ kết quả của các bài toán con gối nhau
Câu 19:Giải thuật tham lam (Greedy Algorithm) hoạt động dựa trên nguyên tắc nào?
💡 Lời giải chi tiết:
Giải thuật tham lam thực hiện các lựa chọn có vẻ tốt nhất ngay tại thời điểm hiện tại với hy vọng đạt được kết quả tối ưu toàn cục. Kết luận Lý giải: Lựa chọn tối ưu địa phương tại mỗi bước
Câu 20:Độ phức tạp thời gian của giải thuật sắp xếp trộn (Merge Sort) trong mọi trường hợp là bao nhiêu?
💡 Lời giải chi tiết:
Merge Sort luôn chia mảng thành hai nửa và thực hiện phép trộn có độ phức tạp tuyến tính, tạo ra hiệu suất ổn định. Kết luận Lý giải: O(n log n)
Câu 21:Giải thuật sắp xếp chọn (Selection Sort) có độ phức tạp thời gian trong trường hợp tốt nhất là bao nhiêu?
💡 Lời giải chi tiết:
Bất kể mảng đầu vào đã được sắp xếp hay chưa, Selection Sort vẫn phải thực hiện đủ các vòng lặp để tìm phần tử nhỏ nhất. Kết luận Lý giải: O(n bình phương)
Câu 22:Trong một cây nhị phân tìm kiếm (BST), các nút ở cây con bên trái của nút gốc luôn có giá trị như thế nào so với nút gốc?
💡 Lời giải chi tiết:
Theo quy tắc xây dựng cây nhị phân tìm kiếm, giá trị tại mọi nút ở cây con bên trái phải nhỏ hơn giá trị nút cha của nó. Kết luận Lý giải: Nhỏ hơn nút gốc
Câu 23:Cấu trúc dữ liệu nào cho phép duyệt dữ liệu theo cả hai chiều tiến và lùi một cách hiệu quả nhất?
💡 Lời giải chi tiết:
Danh sách liên kết kép chứa hai con trỏ tại mỗi nút (trỏ tới nút trước và nút sau), cho phép di chuyển linh hoạt cả hai hướng. Kết luận Lý giải: Danh sách liên kết kép
Câu 24:Mục đích chính của việc sử dụng hàng đợi vòng (Circular Queue) thay cho hàng đợi tuyến tính là gì?
💡 Lời giải chi tiết:
Hàng đợi vòng cho phép sử dụng lại các vị trí đã bị xóa ở đầu mảng, tránh lãng phí bộ nhớ khi các chỉ số chạm giới hạn cuối. Kết luận Lý giải: Tận dụng lại các khoảng trống ở đầu mảng
Câu 25:Trong cấu trúc dữ liệu hàng đợi ưu tiên (Priority Queue), thứ tự lấy phần tử ra khỏi hàng đợi dựa trên yếu tố nào?
💡 Lời giải chi tiết:
Khác với hàng đợi thông thường, hàng đợi ưu tiên luôn lấy ra phần tử được gán nhãn ưu tiên lớn nhất (hoặc nhỏ nhất tùy cài đặt) trước. Kết luận Lý giải: Phần tử có độ ưu tiên cao nhất