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


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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM