다음은 간단히 구현 한 코드입니다. for 루프는 O (n)의 복잡성을 가져야합니다. 나는 내부 while 루프의 시간 복잡성을 파악할 수 없다.알고리즘 시간 복잡도 분석 (내부 while 루프가있는 루프의 경우)
int x,n; // Inputted by the user.
for (int i=0; i<n; i++)
{
int done=0;
if (Condition)
{
while (done < x)
{
done++; // Based on a lot of operations
}
}
}
원하는 경우 전체 코드를 게시 할 수 있습니다. 미리 감사드립니다 :)
__overall__ 내부 루프 복잡성은 O (x)입니다. 그러나'done'을 0으로 리셋하지 않기 때문에''내부 연산 '_이 실행되는'x' 번이 외부 루프 전체에서 수행됩니다. 결국이 작업은'x' 번만 실행됩니다. – Rerito
@Rerito 실수를 저질 렀습니다. done은 루프 반복마다 0으로 재설정됩니다. – user3490561
그런 다음 처음 시작할 때뿐만 아니라'Condition'이 트리거 될 때마다 실행됩니다. 내부 루프 복잡성은 O (x)로 유지됩니다 (연산이 메트릭으로 실행되는 횟수를 가짐). – Rerito