首页 > 其他 > 详细

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

时间:2021-04-10 00:45:58      阅读:100      评论: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)

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

原文:https://www.cnblogs.com/otakus/p/14638453.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!