求演算法的時間複雜度級別

2021-07-05 13:26:31 字數 683 閱讀 5535

該題目出自王道2023年資料結構複習指導p008綜合應用第一題。

1、題目:乙個演算法所需時間由下述遞迴方程表示,試求出該演算法的時間複雜度級別(或階)

t(n)=1,若n=1

t(n)=2t(n/2)+n,若n>1;

式子中,n是問題的規模,為簡單起見,設n是2的整數冪。

2、解題思路:根據上述的遞迴公式求出式子的t(n)即可,這說是乙個演算法題目,更像是乙個數學題目。

3、解題步驟:

t(n)=2t(n/2)+n

兩邊同時除以n,得到

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

t(n/2)/(n/2)= t(n/4)/(n/4)+1        (2)

t(2)/2=t(1)/1+1                             (log2(n))

注:因為每次式子的變化都是除以2變化的,所以式子的個數是log2(n)

將下面的式子都帶入到式子(1

)中可以得到

t(n)/n=t(1)/1+1*log2(n)

t(n)=n(t(1)/1+1*log2(n))

t(1)=1

所以t(n)=n(1+log2(n))

所以o(n)=nlog2(n)

4、祝福

祝願考研學子:有志者事竟成。

演算法時間複雜度空間複雜度

演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...

演算法 時間複雜度 空間複雜度

1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...

演算法的時間複雜度 空間複雜度

時間複雜度和空間複雜度是度量演算法效率的常用指標 事後統計,不常用 事前統計影響因素 演算法策略 問題規模 程式語言 質量 機器執行指令的速度 撇開軟硬體的影響,演算法執行工作量的大小只依賴於問題的規模 通常用整數n表示 乙個演算法是由控制結構 順序,分支,迴圈三種 和原操作 指固有資料型別的操作 ...