1.Dễ
Hàm nào sau đây tăng chậm nhất khi n lớn dần?
- AO(log n)
- BO(n)
- CO(n log n)
- DO(n²)
2.Dễ
Thời gian chạy nào sau đây là đa thức?
- AO(n³)
- BO(2ⁿ)
- CO(n!)
- DO(nⁿ)
3.Dễ
Ba bước của một thuật toán chia để trị là gì?
- AChia, trị, kết hợp
- BĐọc, tính toán, ghi
- CSắp xếp, tìm kiếm, trả về
- DĐoán, kiểm tra, lặp lại
4.Trung bình
Độ phức tạp thời gian của thuật toán Bellman–Ford trên đồ thị có V đỉnh và E cạnh là gì?
- AO(E log V)
- BO(V³ × E)
- CO(V × E)
- DO(V + E)
5.Trung bình
Thuật toán Floyd–Warshall tính gì, và nhanh đến mức nào?
- AMột thứ tự tô-pô trong O(V²)
- BMột cây khung nhỏ nhất trong O(E log V)
- CĐường đi ngắn nhất từ một đỉnh nguồn đến mọi đỉnh khác trong O(V + E)
- DĐường đi ngắn nhất giữa mọi cặp đỉnh trong O(V³)
6.Trung bình
Trong một mảng đã sắp xếp, bạn tìm hai phần tử có tổng bằng giá trị đích bằng cách di chuyển một con trỏ từ mỗi đầu vào trong. Độ phức tạp thời gian là bao nhiêu?
- AO(n²)
- BO(n log n)
- CO(log n)
- DO(n)
7.Khó
Bài toán cái túi 0/1 giải bằng quy hoạch động mất thời gian O(nW). Vì sao điều này được gọi là giả đa thức?
- AVì nó chỉ hoạt động khi W = 0
- BVì thuật toán là ngẫu nhiên và thời gian chạy thay đổi theo từng đầu vào
- CW là một giá trị số, nên thời gian là hàm mũ theo số bit dùng để viết W
- DVì n luôn nhỏ
8.Khó
Thuật toán nào tìm cây khung nhỏ nhất bằng cách liên tục thêm cạnh rẻ nhất không tạo chu trình?
- AThuật toán Dijkstra
- BThuật toán Prim bắt đầu từ một nút
- CFloyd–Warshall
- DThuật toán Kruskal
Đáp án
- 1. A · O(log n)
- 2. A · O(n³)
- 3. A · Chia, trị, kết hợp
- 4. C · O(V × E)
- 5. D · Đường đi ngắn nhất giữa mọi cặp đỉnh trong O(V³)
- 6. D · O(n)
- 7. C · W là một giá trị số, nên thời gian là hàm mũ theo số bit dùng để viết W
- 8. D · Thuật toán Kruskal
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.