소프트웨어 엔지니어링 클래스에 대한 소개는 시간 복잡성에 걸렸으며 특정 알고리즘을 분석하는 방법을 배우는 중입니다. 나는 그들이 어떻게 그들의 해결책에 도달했는지를 알기가 어려워 누군가가 그것을 설명 할 수 있기를 바랐다.알고리즘의 시간 복잡도 솔루션에 대한 설명이 필요합니다.
void foo(int N) {
int k = 1;
while (k < N * N) {
k = k * 2;
}
}
이들 솔루션은이 기능의 큰-O는 점이다 O (logN)는
내가 생각함으로써이 문제를 해결하려 [나는 여기에 로그가 기본이 이해] 얼마나 많은 시간이 것 임의의 값을 N에 할당하여 반복하고 패턴을 찾을 수 없습니다. 어떤 도움이 필요합니까?
'k'와'N'의 값을 2 진수로 씁니다. 모두 의미가 있어야합니다. –
수학 프로그램/라이브러리를 사용하여 N. – kaylum
@ user6918211의 증가하는 값 대 루프 수를 나타냅니다. 아래 답변 중 하나가 충분하다고 생각되면 답을 표시하십시오. – Charles