알고리즘 분석 Big Oh

사용자 3339242

각 코드 줄의 Big Oh를 파악하고 싶었습니다. 처음 두 줄을 얻을 수 있었지만 세 번째 줄이 혼란 스럽습니다.

sum <- 0                        // O(1)
for i <- 0 to n do              // O(n + 3)
for j <- 0 to i * i do          //
    for k <- 0 to j do          //
        sum <- sum + 1          //
        { k <- k + 1 }          //
    { j <- j + 1 }              //
{ i <- i + 1 }
일야 부르 소프
sum <- 0                        // O(1)
for i <- 0 to n do              // O(n)
    for j <- 0 to i * i do      // O(n^2), this means that last/longest run (when i==n) of this inner loop will take n*n iterations
        for k <- 0 to j do      // O(n^2), last run of this loop (j==i*i==n^2) will take n^2 iterations
            sum <- sum + 1      // O(1)
            { k <- k + 1 }      // O(1)
        { j <- j + 1 }          // O(1)
    { i <- i + 1 }              // O(1)

내부 (k) 루프로 시작할 수 있습니다. 가장 긴 실행은 무엇입니까? j가 최대 일 때? max J = maxI * maxI = n ^ 2, 따라서 내부 (k) 루프의 공평성은 O (N ^ 2)입니다.

K 루프는 몇 번 실행됩니까? 다시 N ^ 2이므로 J 루프의 복잡도는 N ^ 2이고,이 두 루프의 총 복잡도는 다음과 같습니다. O (J 루프 * O (K 루프)) = O (N ^ 2 * O (N ^ 2)) = O ( N ^ 4)

마지막-외부 I 루프가 있고 복잡성은 O (N)이므로 최종 합계가 있습니다.

O (n * O (n ^ 2 * O (n ^ 2))) = O (n ^ 5)

그래서 기본적으로 우리는 위쪽 점근선을 찾기 위해 "최악의"경우를 확인합니다. 즉,이 알고리즘의 실행 시간은 n ^ 5가 증가함에 따라 같은 속도로 증가합니다.

참고 :

이 루프의 복잡성 :

for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)

N ^ 2입니다.

거의 동일한 루프 (하지만 두 번째 조건에주의) :

for (i = 0; i < n; i++)
    for (j = 0; j < i; j++)

이것의 복잡성도 N ^ 2입니다. 조금 더 빨리 실행될 것이 분명하더라도 N ^ 2가 증가하면 전체 실행 시간이 늘어납니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Big-Theta 알고리즘 분석

분류에서Dev

이 알고리즘에 대한 Big Oh는 무엇입니까?

분류에서Dev

알고리즘의 시간 복잡도, Big Oh 표기법

분류에서Dev

알고리즘을위한 Big O 분석

분류에서Dev

알고리즘 분석

분류에서Dev

루프 분석-알고리즘 분석

분류에서Dev

알고리즘의 big O

분류에서Dev

XML 구문 분석-알고리즘

분류에서Dev

알고리즘 복잡성 분석

분류에서Dev

알고리즘 분석 반복 비교

분류에서Dev

이 알고리즘 분석 및 이해

분류에서Dev

알고리즘 복잡성 분석

분류에서Dev

Big Theta Θ 표기법으로이 알고리즘의 형식적인 복잡성을 분석하는 방법은 무엇입니까?

분류에서Dev

분류 알고리즘에서 의사 결정 트리 분석

분류에서Dev

분석 쉘 정렬 알고리즘 (큰 O)

분류에서Dev

알고리즘 분석의 비교로 어떤 카운트?

분류에서Dev

재귀 알고리즘의 시간 복잡도 분석

분류에서Dev

알고리즘 문제의 점근 적 분석

분류에서Dev

반복 방정식 계산 (알고리즘 분석)

분류에서Dev

간단한 언어로 알고리즘의 확률 적 분석?

분류에서Dev

간단한 언어로 알고리즘의 확률 적 분석?

분류에서Dev

간단한 추세 분석 알고리즘

분류에서Dev

알고리즘 시간 분석 : 재귀 사례 퍼즐

분류에서Dev

알고리즘 분석-익명 함수 증명

분류에서Dev

Dijkstra 알고리즘의 런타임 분석, O (Vlog (V) + VE)

분류에서Dev

정렬 알고리즘 런타임 분석

분류에서Dev

알고리즘 분석 및 시간 복잡성 찾기

분류에서Dev

이 알고리즘 분석이 맞습니까?

분류에서Dev

간단한 문자열 구문 분석 알고리즘