1樓:匿名使用者
1、主要操作是i = i * 5和i<=n,設迴圈次數為x,則5^x <= n,因此x <= log5(n),其中5是底數,因此時間複雜度為o(log5(n))。
2、主要操作在while迴圈中,設迴圈執行次數為x,則x^2<= n,x <= sqrt(n),因此時間複雜度為o(sqrt(n))。
3、主要是看內迴圈執行的次數,當i=1時,內迴圈執行n-3次i=2時,內迴圈執行n-6次,所以總的執行次數是(n-3*1)+(n-3*2)+(n-3*3)+...+(n-3*n/3)。總的項數為n/3,因此總次數為n*(n/3)-3*(1+2+...
+n/3)=(n^2 - 3n)/6。因此時間複雜度為o(n^2)
2樓:匿名使用者
求時間複雜度只需找出執行次數最多的那條語句。
對於第一個,設執行次數為k,則i最終等於k^5=n; 解出k即可;
對於第二個,設執行次數為k,則最終有k^2=n;解出k;
對於第三個,if語句執行n/3次,單獨看裡面的for執行(n-n/3)次,結合if語句,則最終有
(n-n/3)*n/3 ,時間複雜度一眼便知
請分析下面演算法的時間複雜度。希望可以給一個詳細分析計算過程,謝謝。
3樓:匿名使用者
演算法1是最壞情況執行n/2次,也就是o(n);
演算法2是執行次數是[lgn]+1,也就是o(lgn)演算法3是最壞情況執行[√n]-1次,這就是o(√n)其中,lg是以10為底的對數。[ ]是向下取整。
關於union的c語言題目寫出下面程式正確的輸出結
int和long一樣都是4個位元組,所以s k取的就是i 0 的值。printf c n s c 0 算出是9和大小端有關,只有小端才是9。就是ansi char 9 換成十六進位制就是39。char 0 取了i 0 的低八位。首先 union 和 struct 不同的一點就是一個 union 中的...
問幾個C語言程式的問題
1.include int main printf 轉換後的字母為 for i 0 i 5 i printf c s i printf n return 0 2.include int main return 0 3.include int main 這個很簡單嘛,我來回答好了 1.char str...
求解下面一段C語言程式每一句表達的意思,人家給的程式,但是不
include 標頭檔案 int f int n 定義一個函式 main 程式的開始,必須的 這麼簡單,自己看譚浩強那本c語言人們 入門,很快就能看懂每一句話了。看懂不管什麼 都有一些非常有意思的技巧 我假設我現在從來沒看過氣泡排序,和你一起分析一下這 int a n 初始化了亂序陣列int i,j...