Câu hỏi:
20/04/2023 170Em hãy thiết lập chương trình và tính thời gian chạy thực tế trên máy tính của các chương trình 1 và 2 ở Hình 24.2 với các giá trị n khác nhau từ đó thấy được ý nghĩa sự khác biệt độ phức tạp thời gian của hai chương trình này.
Sách mới 2k7: Bộ 20 đề minh họa Toán, Lí, Hóa, Văn, Sử, Địa…. form chuẩn 2025 của Bộ giáo dục (chỉ từ 110k).
Quảng cáo
Trả lời:
*Chương trình 1:
from collections import Counter
import time
n = 1000
c = 0
# Ghi lại thời điểm bắt đầu
start_time = time.time()
for k in range(n):
c = c + 1
# Ghi lại thời điểm kết thúc
end_time = time.time()
# Tính thời gian hoàn thành
elapsed_time = end_time - start_time
# Sử dụng hàm Counter để đếm số lần lặp
counter = Counter(range(n))
# In số lần lặp
print("Số lần lặp: {}".format(counter))
# In thời gian thực thi
print("Thời gian thực thi của chương trình: {:.6f} giây".format(elapsed_time))
*Chương trình 2:
import time
n = 1000
c = 0
# Ghi lại thời điểm bắt đầu
start_time = time.perf_counter()
for k in range(n):
for j in range(n):
c = c + 1
# Ghi lại thời điểm kết thúc
end_time = time.perf_counter()
# Tính thời gian hoàn thành
elapsed_time = end_time - start_time
# In số lần lặp
print("Số lần lặp: {}".format(c))
# In thời gian thực thi
print("Thời gian thực thi của chương trình: {:.6f} giây".format(elapsed_time))
àSự khác biệt độ phức tạp thời gian của 2 chương trình trên:
Độ phức tạp thời gian của chương trình 1 là O(1), còn độ phức tạp thời gian của chương trình 2 là O(n2).
CÂU HỎI HOT CÙNG CHỦ ĐỀ
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)
Câu 2:
Xác định độ phức tạp thời gian tính toán cho chương trình sau:
n = 1000
sum = 0
i = 1
while i <n;
i = i*2
sum = sum + 1
print (sum)
Câu 3:
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?
Câu 4:
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?
Câu 5:
Tính độ phức tạp của các hàm thời gian sau:
a) T(n) = 2n(n - 2) + 4.
b) T(n) = n3 + 5n - 3.
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:
a) T(n) = n3 + nlogn + 2n + 1.
b) T(n) = 3n4 + 2n2logn + 10.
Câu 7:
Xác định độ phức tạp thời gian của thuật toán sắp xếp chọn đã được học trong bài 21.
Đề thi cuối học kì 1 Tin học 11 Kết nối trí thức có đáp án (Đề 3)
Đề thi cuối học kì 1 Tin học 11 Kết nối trí thức có đáp án (Đề 1)
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 11 có đáp án
Đề thi cuối học kì 1 Tin học 11 Kết nối trí thức có đáp án (Đề 2)
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 10 có đáp án
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 12 có đáp án
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 13 có đáp án
Đề thi cuối kì 1 môn Tin học lớp 11 Cánh diều có đáp án (Đề 1)
về câu hỏi!