1.Dễ
Thuật toán sắp xếp nào liên tục hoán đổi các phần tử kề nhau đang sai thứ tự?
- ASắp xếp trộn
- BSắp xếp nổi bọt
- CQuicksort
- DSắp xếp vun đống
2.Dễ
Lớp độ phức tạp nào tăng nhanh nhất khi n lớn?
- AO(n log n)
- BO(n²)
- CO(2ⁿ)
- DO(n³)
3.Dễ
Độ phức tạp không gian đo lường:
- ALượng bộ nhớ một thuật toán cần khi đầu vào tăng
- BKích thước vật lý của máy tính
- CDung lượng đĩa của tệp chương trình sau khi được biên dịch
- DSố dòng mã
4.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(log n)
- BO(n)
- CO(n²)
- DO(n log n)
5.Trung bình
Độ phức tạp thời gian của việc tính số Fibonacci thứ n bằng bảng từ dưới lên là gì?
- AO(n²)
- BO(log n)
- CO(2ⁿ)
- DO(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²)
- BO(n log n)
- CO(n)
- DO(log n)
7.Khó
22n có thuộc O(2ⁿ) không?
- AKhông, vì 22n tăng chậm hơn 2ⁿ
- BKhông, vì 22n = 4ⁿ và 4ⁿ / 2ⁿ = 2ⁿ tăng không giới hạn
- CCó, vì cả hai đều là hàm mũ
- DCó, vì các hệ số hằng trong số mũ luôn bị bỏ qua trong Big O
8.Khó
Vì sao thuật toán Dijkstra có thể cho kết quả sai khi một số trọng số cạnh âm?
- ANó rơi vào vòng lặp vô hạn ở mọi cạnh âm
- BSố âm không thể lưu trong hàng đợi ưu tiên
- CMột đỉnh được chốt khi được lấy ra, nhưng một cạnh âm sau đó vẫn có thể cho nó một đường đi ngắn hơn
- DNó chỉ hoạt động trên đồ thị vô hướng
Đáp án
- 1. B · Sắp xếp nổi bọt
- 2. C · O(2ⁿ)
- 3. A · Lượng bộ nhớ một thuật toán cần khi đầu vào tăng
- 4. B · O(n)
- 5. D · O(n)
- 6. A · O(n²)
- 7. B · Không, vì 22n = 4ⁿ và 4ⁿ / 2ⁿ = 2ⁿ tăng không giới hạn
- 8. C · Một đỉnh được chốt khi được lấy ra, nhưng một cạnh âm sau đó vẫn có thể cho nó một đường đi ngắn hơn
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.