[KNTT] Trắc nghiệm Tin học 11 KHMT bài 24 Đánh giá độ phức tạp thời gian thuật toán

[KNTT] Trắc nghiệm Tin học 11 KHMT bài 24 Đánh giá độ phức tạp thời gian thuật toán

1. Một thuật toán có độ phức tạp thời gian O(n^2) và một thuật toán khác có độ phức tạp O(n log n). Khi kích thước đầu vào tăng từ 10 lên 1000, điều gì có khả năng xảy ra?
2. Độ phức tạp thời gian O(log n) thường xuất hiện trong các thuật toán nào?
3. Trong phân tích độ phức tạp, chúng ta thường bỏ qua các hệ số hằng số và các số hạng bậc thấp hơn. Tại sao lại làm như vậy?
4. Độ phức tạp thời gian O(1) có nghĩa là gì đối với một thuật toán?
5. Độ phức tạp thời gian O(n log n) thường thấy ở các thuật toán sắp xếp hiệu quả nào?
6. Phân tích độ phức tạp thời gian của một thuật toán có ích lợi gì?
7. Độ phức tạp thời gian O(n^2) thường có thể gặp phải ở các thuật toán nào?
8. Xét thuật toán tìm kiếm tuần tự trong một mảng chưa sắp xếp. Trong trường hợp xấu nhất, thời gian thực thi của thuật toán này tỉ lệ với độ lớn của mảng (n). Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự trong trường hợp xấu nhất được biểu diễn như thế nào?
9. Xét hai vòng lặp lồng nhau, vòng lặp bên ngoài chạy n lần và vòng lặp bên trong cũng chạy n lần cho mỗi lần lặp của vòng ngoài. Độ phức tạp thời gian của cấu trúc này là gì?
10. Trong thuật toán tìm kiếm nhị phân, mỗi bước chúng ta loại bỏ một nửa phạm vi tìm kiếm. Điều này dẫn đến độ phức tạp thời gian là bao nhiêu?
11. Khi hai thuật toán có cùng độ phức tạp thời gian, ví dụ O(n log n), yếu tố nào có thể khiến một thuật toán nhanh hơn thuật toán kia trên thực tế?
12. Khi phân tích độ phức tạp thời gian của một đoạn mã, chúng ta thường tập trung vào phần nào của đoạn mã?
13. Thuật toán sắp xếp nổi bọt (Bubble Sort) có độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?
14. Độ phức tạp thời gian của một thuật toán khi thực hiện một chuỗi các thao tác là gì?
15. Độ phức tạp thời gian của một thuật toán có thể bị ảnh hưởng bởi yếu tố nào sau đây?
16. Trong lý thuyết độ phức tạp thuật toán, ký hiệu Big O (O()) được sử dụng để biểu diễn giới hạn trên của tốc độ tăng trưởng của một hàm số hoặc tốc độ tăng trưởng của thời gian thực thi của một thuật toán. Điều này có nghĩa là gì?
17. Trong các trường hợp sau, trường hợp nào thể hiện độ phức tạp thời gian tệ nhất (tăng nhanh nhất khi kích thước đầu vào n tăng)?
18. Độ phức tạp thời gian O(n^3) có nghĩa là gì?
19. Một hàm đệ quy gọi chính nó hai lần với kích thước đầu vào giảm đi một nửa ở mỗi lần gọi, ví dụ f(n) = 2f(n/2) + O(1). Độ phức tạp thời gian của hàm này thường là gì?
20. Khi một thuật toán thực hiện k phép toán độc lập, mỗi phép toán có độ phức tạp là O(f(n)), độ phức tạp tổng thể của thuật toán là gì?
21. Độ phức tạp thời gian O(n!) có ý nghĩa gì trong thực tế lập trình?
22. Trong phân tích độ phức tạp, trường hợp tốt nhất (best-case) của một thuật toán đề cập đến điều gì?
23. Khi so sánh hai thuật toán có độ phức tạp thời gian lần lượt là O(n) và O(n^2), với kích thước đầu vào n rất lớn, thuật toán nào thường hiệu quả hơn?
24. Độ phức tạp thời gian O(n^2) có thể được cải thiện thành O(n log n) bằng cách nào?
25. Độ phức tạp thời gian O(2^n) thường xuất hiện trong các thuật toán nào?