1.Dễ
Một bài toán thường được gọi là khả thi (tractable) nếu:
- ANó chỉ có thể được giải bằng cách thử mọi khả năng
- BNó có thể được giải trong thời gian hằng số
- CNó có thể được giải trong thời gian đa thức
- DNó không có lời giải
2.Dễ
Thời gian chạy của sắp xếp đếm cho n số nguyên trong khoảng từ 0 đến k là bao nhiêu?
- AO(n + k)
- BO(k log n)
- CO(n log n)
- DO(n²)
3.Dễ
Ghi nhớ (memoisation) là gì?
- ATự động chuyển đệ quy thành vòng lặp tương đương để không cần ngăn xếp lời gọi
- BGiải phóng bộ nhớ sau khi một hàm trả về
- CLưu kết quả của các lời gọi hàm để các lời gọi lặp lại được trả lời từ bộ nhớ
- DViết chú thích bên cạnh từng dòng mã
4.Trung bình
Độ phức tạp thời gian của: for i = 1 to n: (j = 1; while j < n: j = j × 2) là gì?
- AO(log n)
- BO(n²)
- CO(n log n)
- DO(n)
5.Trung bình
Bạn sắp xếp một mảng n phần tử một lần rồi trả lời k truy vấn thuộc về bằng tìm kiếm nhị phân. Tổng chi phí là bao nhiêu?
- AO(n + k)
- BO(k n log n)
- CO(nk)
- DO(n log n + k log n)
6.Trung bình
Độ phức tạp thời gian trong trường hợp xấu nhất của quicksort là gì?
- AO(n log n)
- BO(n)
- CO(n²)
- DO(log n)
7.Khó
Thuật toán Strassen nhân ma trận bằng 7 thay vì 8 phép nhân đệ quy các khối nửa kích thước. Thời gian chạy của nó là bao nhiêu?
- AΘ(n² log n)
- BΘ(nlog₂ 7), khoảng n2,81
- CΘ(n³)
- DΘ(n2)
8.Khó
Bài toán người bán hàng rong được phân loại thế nào?
- APhiên bản quyết định thuộc P nhưng phiên bản tối ưu hóa là NP-đầy đủ
- BNó bất khả quyết định
- CPhiên bản quyết định là NP-đầy đủ và phiên bản tối ưu hóa là NP-khó
- DNó thuộc P vì thuật toán Dijkstra giải được nó bằng cách thăm mỗi thành phố một lần
Đáp án
- 1. C · Nó có thể được giải trong thời gian đa thức
- 2. A · O(n + k)
- 3. C · Lưu kết quả của các lời gọi hàm để các lời gọi lặp lại được trả lời từ bộ nhớ
- 4. C · O(n log n)
- 5. D · O(n log n + k log n)
- 6. C · O(n²)
- 7. B · Θ(nlog₂ 7), khoảng n2,81
- 8. C · Phiên bản quyết định là NP-đầy đủ và phiên bản tối ưu hóa là NP-khó
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.