Processing math: 100%

읽기 전

  • 해당 게시물은 작성자가 학습한 내용을 정리 및 요약 목적으로 작성되었으므로 오역 및 오개념이 있을 수 있습니다.
  • 바로잡기 위한 의견을 제시해주시면 매우 감사하겠습니다.

매개 변수의 증가폭이 지수적으로 증가할 때 시간 복잡도

void fun(int n, int k)
{
for (int i=1; i<=n; i++)
{
int p = pow(i, k);
for (int j=1; j<=p; j++)
{
// Some O(1) work
}
}
}

위 코드의 전체 수행 시간은 1k+2k++nk인 제곱수들의 합으로 표현할 수 있다. 즉, k값에 따라 위 코드의 시간 복잡도는 가변적이다.

  1. k=1일 때

    SUM=1+2++n=n(n+1)2=n2+n2

  2. k=2일 때

    SUM=12+22++n2=n(n+1)(2n+1)6=n33+n22+n6

  3. k=3일 때

    SUM=13+23++n3=n(n+1)22=n24+n32+n24

요약하자면 점근적 관점에서 복잡도는 nk+1k+1가 가장 큰 지수를 가지므로 시간 복잡도는 θ(nk+1k+1)으로 표현할 수 있다.

참고자료

  1. Time Complexity of Loop with Powers

+ Recent posts