時間複雜度計算

2022-08-03 01:24:12 字數 2131 閱讀 2864

例1:

for(int i = 1;i<=n;i*=2)

時間複雜度:o(n*log2

n) 內層迴圈改為 <=i 

時間複雜度:o(n2)    1+2+3...+n 等差數列前n項和

例二:for(i = 1;i<=n;i++)

for(j = 1;j<=i;j++)

for(k = 1;k<=j;k++)

p--;

時間複雜度:o(n3)

計算過程:

1+(1+2)+(1+2+3)+(1+2+3+...)+...+..(1+2+3+...+n)

i(i+1)/2 i從1到n 求和 n(n+1)(2n+1)/6 ???

遞迴的時間複雜度計算:遞迴的通式:t(n) = at(n/b)+f(n)    n為資料規模

例3:t(n) = 3t(n/4)+cn2

時間複雜度:o(n2)

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

時間複雜度:o(n)

簡便演算法:直接算o(nlogba )   和  f(n) 將這連個數比較 , 取結果大的乙個

上面兩個一樣大的時候 結果為    o(nlogba  *  log2

n)

名稱       最好時間複雜度     平均時間複雜度     最壞時間複雜度   空間複雜度         穩定性

冒泡        o(n)正序          o(n^2)          o(n^2)逆序        o(1)           穩定

簡單選擇      o(n^2)         o(n^2)          o(n^2)          o(1)            不穩定

插入排序      o(n)正序         o(n^2)         o(n^2)逆序        o(1)           穩定

快排        o(n*log2 n)          o(n*log2 n)       o(n^2)有序/逆序最壞    o(log2 n)        不穩定

希爾(插入)      o(n)正序              o(n的(1.2~1.5))      o(n^2)逆序        o(1)           不穩定

歸併(二路)      o(n*log2 n)                o(n*log2 n)       o(n*log2 n)       o(n)           穩定

堆排(選擇)         o(n*log2 n)               o(n*log2 n)     o(n*log2 n)        o(1)           不穩定

基數排序      o(d*(n+r))                o(d*(n+r))         o(d*(n+r))       o(n+r)           穩定

注:空間複雜度 額外申請的空間 包括變數和動態申請的

常量空間複雜度:如果我們額外申請的空間 不隨著處理資料量的增大而增大 那麼我們稱這樣的空間複雜度為常量空間複雜度記為o(1)

穩定:數值相等的兩個元素 在排序前後其相對位置未發生改變

基數排序最穩定 d------位數 r--------桶的個數

別的排序可能受人的寫法影響穩定性

歸併排序 -----空間複雜度 如果申請了額外陣列就是o(n) 沒申請就是o(log2 n)

堆排 建立初始堆------ s = 2^(k-2)*1+2^(k-3)*2+...+1*(k-1) 錯位相減 ----------------- o(n)

排序------------- o(n*log2 n)

時間複雜度計算

定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式 t n 稱為這一演算法的 時間複雜性 當輸入量n逐漸加大時,時間複雜性的極限情形稱為演算法的 漸近時間複雜性 我們常用大o表示法表示時間複雜性,注意它是某乙個演算法的時間複雜性。大o表示只是說有上界,由定義如...

時間複雜度計算

1,演算法複雜度是在 資料結構 這門課程的第一章裡出現的,因為它稍微涉及到一些數學問題,所以很多同學感覺很難,加上這個概念也不是那麼具體,更讓許多同學複習起來無從下手,下面我們就這個問題給各位考生進行分析。首先了解一下幾個概念。乙個是時間複雜度,乙個是漸近時間複雜度。前者是某個演算法的時間耗費,它是...

計算時間複雜度

求解演算法的時間複雜度的具體步驟是 找出演算法中的基本語句 演算法中執行次數最多的那條語句就是基本語句,通常是最內層迴圈的迴圈體。計算基本語句的執行次數的數量級 只需計算基本語句執行次數的數量級,這就意味著只要保證基本語句執行次數的函式中的最高次冪正確即可,可以忽略所有低次冪和最高次冪的係數。這樣能...