int i;
for(i=0;i<n;i++)
{
if(i==number);
break;
}
또는어떤 "for"루프가 더 나은 시간 복잡성을 갖고 있습니까?
for(i=0; ;i++)
{
if(i==number)
break;
}
루프 효과에 대한 시간 복잡도의 비교 부분을 제거하거나하지 않습니다?
당신은 빠르고 정확하다 말할 수 없다int i;
for(i=0;i<n;i++)
{
if(i==number);
break;
}
또는어떤 "for"루프가 더 나은 시간 복잡성을 갖고 있습니까?
for(i=0; ;i++)
{
if(i==number)
break;
}
루프 효과에 대한 시간 복잡도의 비교 부분을 제거하거나하지 않습니다?
당신은 빠르고 정확하다 말할 수 없다...
첫 번째의 시간 복잡도는 O(min(n, number))
이고 두 번째는 O(number)
입니다.
n이 number보다 크거나 같으면 첫 번째 값은 두 번째 값과 같습니다.
O(number)
(숫자가 N보다 작로 min(n, number) = number
O(number)
n은 수보다 적은 경우에도 정지, 제는 (빠르다 n).
O(n)
(n은 n보다 작음). 암갈색, min(n, number) = n
O(number)
는 제가 빠를 것이다.
위에서 볼 수 있듯이 for 비교 내부의 비교를 제거하면 두 번째 경우의 복잡도가 달라졌을 때 분명합니다.
감사합니다. Daniel, 시간이 모두 동일 할 것입니다. 루프 또는? 어떤 차이가 있습니까? 내가 설명한대로 –
, 숫자가 n보다 크면 시간이 달라집니다. 그렇지 않으면 시간 복잡도가 동일합니다. – Daniel
첫 번째 것은'O (n)'입니다. 두 번째 것은'O (max (number))'입니다. –
break 문이 있기 때문에 i == number 일 때 종료됩니다. 그리고 그 안에 실제로 "숫자"를 가질 어레이를위한 것입니다. –
감사합니다. 유진 씨. 어떻게 설명해 주시겠습니까? –