def f2(lst):
i = len(lst)
while i>0:
for j in range(i, i+10**8):
for k in range(i):
print(k)
i -= 2
시간 복잡도 란 무엇입니까? n/2 번 작동하지만 나머지는 어떨까요?루프의 시간 복잡도는 얼마입니까?
def f2(lst):
i = len(lst)
while i>0:
for j in range(i, i+10**8):
for k in range(i):
print(k)
i -= 2
시간 복잡도 란 무엇입니까? n/2 번 작동하지만 나머지는 어떨까요?루프의 시간 복잡도는 얼마입니까?
대답은 O(n^2)
입니다.
첫 번째 루프는 ~ n, 두 번째 루프는 일정 시간, 세 번째 루프는 ~ n입니다.
여러분이 말했듯이, while
루프는 n/2
번을 반복하므로 O(n)
복잡합니다.
첫 번째 for
루프 (for j in range(i, i+10**8)
)는 상수 런타임이 O(1)
입니다.
두 번째 for
루프의 복잡도는 O(n)
이며 n+n^2
회를 실행합니다.
이
코드를
이 질문은이 알고리즘의 분석이 아니라 실제 프로그래밍 문제에 대해 때문에 오프 주제 것으로 보인다
O(n^2)
복잡성을 제공합니다. –[Computer Science] (http://cs.stackexchange.com/help/on-topic)에 더 적합합니다. –
기준에 맞게 문제를 현명하게 재 해석해보십시오. – sshashank124