int func(int n){ int i = 0,sum = 0; while(s < n) s += ++i; return i; }

时间:2021-04-10 13:08:02   收藏:0   阅读:0
int func(int n){
    int i = 0,sum = 0;
    while(sum < n)
        sum += ++i;
    return i; 
}

求时间复杂度

A. O(logn)    B. O(n^1/2)     C. O(n)     D. O(nlogn)

++i, i = 1,2,3,4,5,···,k。
s = 1+2+3+4+5+···+k = k*(k+1)/2。
即此时 sum = k*(k+1)/2 >= n,(k+1)2 > 2n,得到k > (2n)1/2 - 1。

因此时间复杂度o(根号n)

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!