請分析下列演算法的時間複雜度。要求寫出分析過程

2021-03-04 09:00:33 字數 2740 閱讀 9552

1樓:匿名使用者

^1.兩重

迴圈for(int i=1; i<=n; i++)for(int j=i; j<=n; j++)迴圈次數為 n(n+1)/2,即時間複雜度專為o(n^2).

2.o(n);

3.o(根號屬n).

請分析下面演算法的時間複雜度。希望可以給乙個詳細分析計算過程,謝謝。

2樓:匿名使用者

演算法1是最壞情況執行n/2次,也就是o(n);

演算法2是執行次數是[lgn]+1,也就是o(lgn)演算法3是最壞情況執行[√n]-1次,這就是o(√n)其中,lg是以10為底的對數。[ ]是向下取整。

分析下列演算法的時間複雜度 void f(int n) { int i=1; while (i<=n) i=2*i; }

3樓:倒霉熊

時間複雜度,就bai是執行次數du最多的那zhi個語句次數。

這段程dao序中,執行次數最內多的就是 i=2*i;

其執行容的次數為:

2*2*2*2*...........*2<=n假設為x次,

則 2^x <=n

2^x =n 可以推出 x = log2n所以,時間複雜度為 o(log2n)

這裡的2是log的下標。

4樓:小飛花兒的憂傷

設複雜度t(n)

那麼t(n) = 1 + t(n/2)

所以t(n) = log2(n)

分析下列演算法的時間複雜度。麻煩也告訴一下怎樣算的,謝謝!

5樓:

每當呼叫這個函式時會產生2個遞迴分支,所以時間複雜度是o(2^n)。

n==1時,呼叫1次rec(1),

n==2時,呼叫1次rec(2),2次rec(1),n==3時,呼叫1次rec(3),2次rec(2),4次rec(1),

以此類推,總的呼叫次數為2^0+2^1+2^2+...+2^(n-1)=2^n-1,

因為函式內不存在迴圈,t(n)=(2^n-1)*1=2^n-1,存在正的常數c,n0使得對於任意n>=n0時有t(n)<=c*2^n,

所以這個時間複雜度是o(2^n)。

三分搜尋演算法的時間複雜度分析

6樓:心の在り処

首先第一點 時間複雜度在用大o表示時常數是沒有意義的,所以複雜度比較標準的寫法是o(log n)

得到這個複雜度 由以下遞推公式 設t(n)為演算法在長度為n的陣列中的執行時間

t(n) = t(n/3) + o(1)

由主定理得

t(n) = o(log n)

請說明下列演算法的時間複雜度。

7樓:匿名使用者

第乙個是 o(8*n) 去常數項就是 o(n)

第二個是 o(m*n)

x+=2和x++ 的複雜度是一樣的 都是o(1) 這也是為什麼在高版精度之類的演算法裡 用四權位、八位分割後 可以提高速度的原因

8樓:匿名使用者

(1)o(n)。外層for迴圈

o(n);內層for迴圈o(1),因為是常數個迴圈;x+=2為o(1)。則總的時間複雜度為o(n)。

(2)o(n^2)。外專層for迴圈o(n);內層屬for迴圈o(n);兩者都是線性時間複雜度。x++為o(1)。則總的時間複雜度為o(n^2)。

9樓:匿名使用者

(1) void sf1 (int n)f(n)=1+n+1+(n+1)*8+(n+1)*8f(n)=2+n+16*(n+1)

f(n)=18+17n

t(n)=o(f(n))=o(18+17n)=o(n)(2) void sf2 (int n, int m){ for (i=0; i,

答t(n)=o(f(n))=o(n+2n²)=o(n²)

分析下面演算法(程式段)給出最大語句頻度 ,該演算法的時間複雜度是__ __。

10樓:愈公升榮其寒

分析每一次bai迴圈可以發現du,當迴圈執zhi

行10次後x>100,y方才減1,此時daox被復原為回91;

如此下去,由於答每執行10次迴圈才使y減1,所以迴圈體執行100*10次,也就是說if語句判斷執行了1000次(但裡面的y--執行了100次)。至於時間複雜度,你現在資料都給定值了那不就是o(1)嗎……如果x、y沒給初值,則粗略地說應該為o(y)(或者說是o(10y))。

11樓:匿名使用者

一樓的回答是sb,希望那些沒好好學演算法的人就別在這裡禍害學生。

版時間複雜度很好算,權

實際上它是乙個1+2+3.....+m=n的過程。等於n後迴圈終止。m好算吧?m=根號下(2n+1/4)-1/2.

所以時間複雜度是o(根號n).

12樓:匿名使用者

s=1+2+3+.....+i=【(1+i)i/2】

所以時間複雜度是o(√n)

根號不好打 反正就是根號下的n

13樓:匿名使用者

這段程式是錯的。.

正確的應該是:

i=s=0;

while (s

do 複雜度是n 只有一次迴圈 沒有巢狀迴圈.

演算法設計與分析已知某個演算法的時間複雜度tnofn

時間複雜度 演算法分析 同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測...

在下列排序演算法中,哪演算法的時間複雜度與初始排序無關

d不管原陣列是什麼樣子,每一次你都要遍歷一邊剩餘的數來選取最大 最小值 演算法的時間複雜度與初始排序無關的都有什麼排序 常見的幾種排序演算法複雜度如下 方式 平均 最壞 最好 插入 n 回2 n 2 n 希爾 n 1.3 冒泡 n 2 n 2 n 快速 nlogn n 2 nlogn 選擇 n 2 ...

遞迴演算法和非遞迴演算法在分析時間複雜度和空間複雜度上為什麼不同

在演算法分析中,當乙個演算法中包含遞迴呼叫時,其時間複雜度的分析會轉化為乙個遞迴方程求解。實際上,這個問題是數學上求解漸近階的問題,而遞迴方程的形式多種多樣,其求解方法也是不一而足,比較常用的有以下四種方法 1 代入法 substitution method 代入法的基本步驟是先推測遞迴方程的顯式解...