CHỦ ĐỀ 6: KĨ THUẬT LẬP TRÌNH
BÀI 24: ĐÁNH GIÁ ĐỘ PHỨC TẠP THỜI GIAN THUẬT TOÁN
A. TRẮC NGHIỆM
1. NHẬN BIẾT
Câu 1: Các bước giải bài toán trên máy tính được tiến hành theo thứ tự nào sau đây:
- Xác định bài toán – Lựa chọn thuật toán – Viết chương trình – Hiệu chỉnh – Viết tài liệu
- Xác định bài toán – Viết chương trình – Lựa chọn thuật toán – Viết tài liệu
- Lựa chọn thuật toán – Xác định bài toán – Viết chương trình – Hiệu chỉnh – Viết tài liệu
- Viết chương trình – Hiệu chỉnh – Viết tài liệu
Câu 2: Mỗi bài toán được đặc tả bởi mấy thành phần:
- 4
- 3
- 2
- 1
Câu 3: Viết chương trình là?
- Biểu diễn thuật toán
- Dùng ngôn ngữ lập trình để diễn đạt bài toán
- Dùng ngôn ngữ lập trình và cấu trúc dữ liệu thích hợp để diễn tả thuật toán
- Tất cả đều đúng
Câu 4: Tiêu chuẩn lựa chọn thuật toán:
- Lượng tài nguyên thuật toán đòi hỏi và lượng tài nguyên cho phép
- Độ phức tạp của thuật toán
- Các tài nguyên như thời gian thực hiện, số lượng ô nhớ…
- Cả 3 ý trên đều đúng
Câu 5: Giải bài toán trên máy tính được tiến hành qua mấy bước?
- 3
- 4
- 5
- 6
Câu 6: Tiêu chí lựa chọn hoặc thiết kế thuật toán là?
- Hiệu quả về thời gian
- Hiệu quả về không gian
- Khả thi khi cài đặt
- Tất cả đều đúng
Câu 7: Bước quan trọng nhất để giải một bài toán trên máy tính là
- Lựa chọn hoặc thiết kế thuật toán
- Viết chương trình
- Xác định bài toán
- Hiệu chỉnh
2. THÔNG HIỂU
Câu 1: Khẳng định "Trong mọi chương trình chỉ có đúng một phép toán tích cực" lá đúng hay sai?
- Sai
- Đúng
- Ý kiến khác
- Chưa đủ dữ kiện
Câu 2: Mục đích của việc hiệu chỉnh là:
- Xác định lại Input và Output của bài toán
- Phát hiện và sửa sai sót
- Mô tả chi tiết bài toán
- Để tạo ra một chương trình mới
Câu 3: Thuật toán tối ưu là?
- Sử dụng ít thời gian, ít bộ nhớ…
- Sử dụng ít thời gian, nhiều bộ nhớ, ít phép toán…
- Sử dụng nhiều thời gian, nhiều bộ nhớ, ít phép toán…
- Sử dụng ít thời gian, ít bộ nhớ, ít phép toán…
Câu 4: Các bước cần phải có khi giải bài toán trên máy tính là:
- Xác định bài toán, lựa chọn hoặc thiết kế thuật toán, diễn tả thuật toán, hiệu chỉnh, viết tài liệu
- Xác định bài toán, lựa chọn hoặc thiết kế thuật toán, viết chương trình, viết tài liệu
- Xác định bài toán, lựa chọn hoặc thiết kế thuật toán, viết chương trình, hiệu chỉnh, viết tài liệu
- Xác định bài toán, viết thuật chọn, viết chương trình, viết tài liệu
3. VẬN DỤNG
Câu 1: Các lệnh và đoạn chương tình sau cần chạy trong bao nhiêu đơn vị thời gian?
- 3 đơn vị thời gian
- 1 đơn vị thời gian
- 2 đơn vị thời gian
- 5 đơn vị thời gian
Câu 2: Các lệnh và đoạn chương tình sau cần chạy trong bao nhiêu đơn vị thời gian?
- 3 đơn vị thời gian
- 1 đơn vị thời gian
- 2 đơn vị thời gian
- 5 đơn vị thời gian
Câu 3: Tính độ phức tạp của các hàm thời gian sau:
Tính = 2n(n - 2) + 4.
- O(n) - tuyến tính
- O(n^{3}) - lũy thừa
- O(n^{1}) - lũy thừa
- O(n^{5}) - lũy thừa
Câu 4: Tính độ phức tạp của các hàm thời gian sau:
Tính = n3 + 5n - 3.
- O(n) - tuyến tính
- O(n^{3}) - lũy thừa
- O(n^{1}) - lũy thừa
- O(n^{5}) - lũy thừa
Câu 5: Áp dụng các quy tác trên để tính độ phức tạp của các hàm thời gian sau:
Tính = n3 + nlogn + 2n + 1.
- O(n3 ) + 1.
- 3O(n4 ) + 10.
- O(n2 ) + 1.
- O(n4 ) + 10.
Câu 6: Áp dụng các quy tác trên để tính độ phức tạp của các hàm thời gian sau:
Tính = 3n4 + 2n2logn + 10.
- O(n3 ) + 1.
- 3O(n4 ) + 10.
- O(n2 ) + 1.
- O(n4 ) + 10.
4. VẬN DỤNG CAO
Câu 1: Xác định độ phức tạp thời gian cho chương trình sau:
n = 1000
s = 0
for i in range (n);
S = S + i(i+1)
Print (S)
- 2 đơn vị thời gian
- 5 đơn vị thời gian
- 1 đơn vị thời gian
- 3 đơn vị thời gian
--------------- Còn tiếp ---------------