NEW
Font size
WorksheetsÔn tập Cấu trúc dữ liệu & Giải thuật (No Graph)
Total questions: 36
Worksheet time: 18mins
Trong phân tích độ phức tạp thuật toán, ký hiệu O(n) có nghĩa là gì?
Thời gian thực thi tăng tuyến tính theo kích thước đầu vào
Thời gian thực thi luôn cố định
Thuật toán luôn chạy nhanh hơn O(log n)
Bộ nhớ sử dụng giảm theo kích thước đầu vào
Ưu điểm chính của mảng (array) là gì?
Truy cập phần tử bất kỳ nhanh, O(1)
Thêm/xóa phần tử giữa mảng nhanh
Tiết kiệm bộ nhớ khi dữ liệu thay đổi nhiều
Luôn lưu trữ dữ liệu theo dạng cây
Nhược điểm lớn nhất của mảng so với danh sách liên kết là gì?
Truy cập phần tử đầu chậm
Chèn/xóa giữa mảng tốn nhiều chi phí
Không thể lưu dữ liệu dạng số
Mảng không hỗ trợ duyệt tuần tự
Ứng dụng thực tế thường dùng ngăn xếp (stack) là gì?
Hệ thống xử lý hàng chờ tại quầy vé
Quản lý lời gọi hàm trong chương trình
Tìm đường đi ngắn nhất trong đồ thị
Tìm kiếm nhị phân
Đặc điểm chính của queue là gì?
Last In First Out (LIFO)
First In First Out (FIFO)
Dữ liệu luôn được sắp xếp tăng dần
Chỉ lưu trữ kiểu số nguyên
Trong hệ thống in tài liệu, để đảm bảo công bằng, cấu trúc dữ liệu phù hợp nhất để quản lý tài liệu chờ in là gì?
Stack
Queue
Hash Table
Binary Search Tree
Trong Python, chuỗi (string) có đặc điểm gì?
Có thể thay đổi từng ký tự trực tiếp
Không thể thay đổi (immutable)
Luôn được lưu dạng danh sách liên kết
Chỉ lưu được ký tự chữ cái, không lưu số
Độ phức tạp thời gian của việc nối chuỗi s1 + s2 (dài m và n) trong Python là gì?
O(1)
O(m + n)
O(log(m+n))
O(mn)
Điểm mạnh lớn nhất của hash table so với array là gì?
Lưu trữ dữ liệu tuần tự
Tìm kiếm phần tử theo key chỉ mất O(1)
Không bao giờ xảy ra va chạm (collision)
Dùng ít bộ nhớ hơn mảng
Ưu điểm chính của linked list so với array là gì?
Truy cập phần tử nhanh
Thêm/xóa linh hoạt ở giữa danh sách
Dễ dàng sắp xếp
Bộ nhớ sử dụng luôn nhỏ hơn
Nhược điểm của linked list so với array là gì?
Không thể thêm/xóa
Không thể duyệt tuần tự
Truy cập ngẫu nhiên tốn O(n)
Không thể lưu số nguyên
Điểm yếu chính của đệ quy so với vòng lặp là gì?
Không thể giải bài toán tìm kiếm
Thường tốn nhiều bộ nhớ stack hơn
Không thể dừng
Không thể áp dụng cho cây nhị phân
Đặc điểm của cây nhị phân là gì?
Mỗi nút có nhiều con
Mỗi nút có tối đa 2 con
Tất cả nút đều có đủ 2 con
Chỉ lưu trữ số nguyên
Ứng dụng thực tế thường dùng cây nhị phân là gì?
Lưu trữ từ điển trong trình soạn thảo
Quản lý hàng chờ
Xử lý undo/redo
Lưu chuỗi ký tự
Trong BST, để tìm giá trị nhỏ nhất ta nên duyệt theo hướng nào?
Đi hết nhánh phải
Đi hết nhánh trái
Đi theo thứ tự In-order
Đi theo BFS
Điểm yếu của BST khi dữ liệu được chèn theo thứ tự tăng dần là gì?
Tạo ra cây cân bằng
Cây trở thành dạng danh sách liên kết, mất lợi thế O(log n)
Không thể tìm kiếm
Luôn tạo ra vòng lặp vô hạn
Trong min-heap, giá trị nào luôn nằm ở gốc (root)?
Giá trị lớn nhất
Giá trị nhỏ nhất
Giá trị trung bình
Bất kỳ giá trị nào
Để cài đặt priority queue hiệu quả nhất, ta nên dùng gì?
Array
Linked List
Heap
Stack
Thuật toán sắp xếp nào có độ phức tạp trung bình tốt nhất trong các lựa chọn sau?
Bubble Sort
Insertion Sort
Quick Sort
Selection Sort
Điểm yếu lớn nhất của Quick Sort là gì?
Không bao giờ chạy nhanh hơn O(n²)
Trường hợp xấu nhất O(n²) nếu chọn pivot kém
Tốn bộ nhớ nhiều hơn Merge Sort
Không thể áp dụng cho số âm
Điều kiện để áp dụng Binary Search là gì?
Dữ liệu dạng mảng đã được sắp xếp
Dữ liệu bất kỳ trong linked list
Dữ liệu dạng hash table
Dữ liệu bất kỳ không cần sắp xếp
Kết quả in ra là gì?
1
3
4
IndexError
Kết quả in ra là gì?
10
20
[10, 20]
Error
Kết quả in ra là gì?
[1, 2]
[2, 3]
[1, 3]
[3]
Kết quả là gì?
abc
bca
cab
cba
Kết quả đoạn code là gì?
3
6
9
Error
Duyệt In-order cây sau in ra gì?
1 2 3
2 1 3
3 2 1
1 3 2
Kết quả in ra là gì?
1
2
3
Error
Trong max-heap, phần tử nào luôn nằm ở gốc (root)?
Phần tử lớn nhất
Phần tử nhỏ nhất
Phần tử ở giữa
Phần tử được thêm sau cùng
Trong hệ thống cấp cứu bệnh viện, cấu trúc dữ liệu nào phù hợp nhất để xử lý bệnh nhân theo mức độ ưu tiên?
Queue
Stack
Priority Queue
Linked List
Độ phức tạp thời gian khi chèn một phần tử vào heap là gì?
O(1)
O(log n)
O(n)
O(n log n)
Nếu cần sắp xếp một danh sách rất lớn và yêu cầu tốc độ cao, thuật toán nào thường được chọn?
Bubble Sort
Quick Sort
Insertion Sort
Linear Search
Ưu điểm của Binary Search so với Linear Search là gì?
Không cần dữ liệu sắp xếp
Nhanh hơn trên dữ liệu lớn đã sắp xếp
Tiết kiệm bộ nhớ hơn hash table
Luôn chạy trong O(1)
Kết quả chương trình là gì?
[3, 1, 4, 2]
[1, 2, 3, 4]
[4, 3, 2, 1]
Error
Kết quả in ra là gì?
(2, "task2")
(1, "task1")
["task1", "task2"]
Error
Kết quả in ra là gì?
2
3
4
-1
