n=100
s=0
for i in range(1,n,2):
s=i+1
print(s)
a) Giá trị của S in trên màn hình là bao nhiêu?
b) Tính thời gian thực hiện của thuật toán T(n).
c) Ước lượng độ phức tạp về thời gian.
Quảng cáo
2 câu trả lời 323
a) Giá trị của \( S \) in trên màn hình là \( 101 \).
b) Để tính thời gian thực hiện của thuật toán, ta cần xem xét số lần lặp trong vòng lặp for. Vòng lặp được thực hiện từ \( i = 1 \) đến \( n-1 \) với bước nhảy là 2 (vì ta đang chỉ định range từ 1 đến n với bước nhảy là 2). Vì vậy, số lần lặp là \( \frac{n-1}{2} \). Trong trường hợp này, \( n = 100 \), vậy số lần lặp là \( \frac{100-1}{2} = 49.5 \). Vì không thể có 0.5 lần lặp, ta cần làm tròn lên. Do đó, có tổng cộng \( 50 \) lần lặp.
c) Độ phức tạp về thời gian của thuật toán này là \( O(n) \) vì số lần lặp tăng tỷ lệ tuyến tính với đầu vào \( n \). Trong trường hợp này, nếu \( n \) tăng lên gấp đôi, thì số lần lặp cũng sẽ tăng gấp đôi.
a) Giá trị của S in trên màn hình là bao nhiêu?
Trong vòng lặp for, biến i sẽ lần lượt nhận các giá trị lẻ từ 1 đến 99 (bao gồm cả 1 và 99). Tại mỗi bước lặp, giá trị của s được cập nhật thành i + 1. Do đó, giá trị cuối cùng của s sẽ là giá trị lớn nhất của i cộng với 1, tức là 99 + 1 = 100.
Vậy, giá trị của S in trên màn hình là 100.
b) Tính thời gian thực hiện của thuật toán T(n).
Thuật toán này thực hiện một vòng lặp for với số lần lặp bằng n/2. Trong mỗi bước lặp, một số phép toán đơn giản (cộng, gán) được thực hiện. Do đó, thời gian thực hiện của thuật toán có thể được biểu diễn bằng O(n).
c) Ước lượng độ phức tạp về thời gian.
Độ phức tạp về thời gian của thuật toán này được ước lượng là O(n). Điều này có nghĩa là thời gian thực hiện của thuật toán sẽ tăng tuyến tính với số lượng phần tử trong tập dữ liệu (n).
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
23162 -
Đã trả lời bởi chuyên gia
Câu lệnh mở biến tệp f1 để đọc dữ liệu có dạng:
A. reset(f1);
B. rewrite(f1);
C. read(f1);
D. write(f1);
15397 -
Đã trả lời bởi chuyên gia
14940 -
Đã trả lời bởi chuyên gia
10760
