2014-03-29 2 views
0
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 번 작동하지만 나머지는 어떨까요?루프의 시간 복잡도는 얼마입니까?

+4

이 질문은이 알고리즘의 분석이 아니라 실제 프로그래밍 문제에 대해 때문에 오프 주제 것으로 보인다 O(n^2) 복잡성을 제공합니다. –

+5

[Computer Science] (http://cs.stackexchange.com/help/on-topic)에 더 적합합니다. –

+0

기준에 맞게 문제를 현명하게 재 해석해보십시오. – sshashank124

답변

2

대답은 O(n^2)입니다.

첫 번째 루프는 ~ n, 두 번째 루프는 일정 시간, 세 번째 루프는 ~ n입니다.

1

여러분이 말했듯이, while 루프는 n/2 번을 반복하므로 O(n) 복잡합니다.

첫 번째 for 루프 (for j in range(i, i+10**8))는 상수 런타임이 O(1)입니다.

두 번째 for 루프의 복잡도는 O(n)이며 n+n^2 회를 실행합니다.

코드를

관련 문제