1.Dễ
Sắp xếp chọn hoạt động như thế nào?
- ANó chèn từng phần tử vào phần đã sắp xếp đang lớn dần bằng cách dịch chuyển
- BNó chia mảng làm đôi rồi trộn lại
- CNó liên tục tìm phần tử nhỏ nhất của phần chưa sắp xếp và hoán đổi nó lên đầu
- DNó liên tục hoán đổi các phần tử kề nhau đang sai thứ tự
2.Dễ
Thuật toán là gì?
- AMột cấu trúc dữ liệu lưu trữ các số
- BMột dãy hữu hạn các bước được xác định rõ để giải một bài toán
- CMột ngôn ngữ lập trình được thiết kế để viết các công thức toán học
- DBất kỳ chương trình máy tính nào có giao diện đồ họa
3.Dễ
Một thuật toán có hai vòng lặp lồng nhau, mỗi vòng chạy n lần, thường có độ phức tạp nào?
- AO(log n)
- BO(n²)
- CO(2n)
- DO(n)
4.Trung bình
Cận dưới của sắp xếp dựa trên so sánh trong trường hợp xấu nhất là:
- AΩ(n log n)
- BΩ(log n)
- CΩ(n)
- DΩ(n²)
5.Trung bình
Công thức truy hồi T(n) = T(n/2) + O(1) có nghiệm là gì?
- AO(log n)
- BO(1)
- CO(n)
- DO(n log n)
6.Trung bình
Thuật toán nào tìm đường đi ngắn nhất từ một nguồn trong đồ thị có trọng số cạnh không âm?
- ABắt buộc phải dùng Bellman–Ford trong mọi trường hợp
- BThuật toán Dijkstra
- CTìm kiếm theo chiều sâu
- DThuật toán Kruskal
7.Khó
Với biến thể bài toán cái túi nào thì quy tắc tham lam "lấy các món theo thứ tự giá trị trên cân nặng" luôn cho đáp án tối ưu?
- ABài toán cái túi 0/1, trong đó các món luôn phải được lấy nguyên
- BCả hai biến thể
- CCái túi phân số, trong đó các món có thể bị chia nhỏ
- DKhông biến thể nào
8.Khó
Cận nào là đúng cho log(n!)?
- AΘ(n²)
- BΘ(log n)
- CΘ(n log n)
- DΘ(n)
Đáp án
- 1. C · Nó liên tục tìm phần tử nhỏ nhất của phần chưa sắp xếp và hoán đổi nó lên đầu
- 2. B · Một dãy hữu hạn các bước được xác định rõ để giải một bài toán
- 3. B · O(n²)
- 4. A · Ω(n log n)
- 5. A · O(log n)
- 6. B · Thuật toán Dijkstra
- 7. C · Cái túi phân số, trong đó các món có thể bị chia nhỏ
- 8. C · Θ(n log n)
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.