排序演算法 時間複雜度和空間複雜度

2021-10-08 06:12:02 字數 1327 閱讀 2826

常數階o(1):無論**執行了多少行,只要沒有迴圈複雜結構,那麼這個的時間複雜度就是o(1)

/**

* o(1) 時間複雜度

* 沒有迴圈結構的順序執行, 無論執行多少行, 時間複雜度均為o(1)

*/public

static

voido1(

)

對數階o(log2n)
/**

* o(log2n) 時間複雜度

* 此處 i 以二倍的速度增長, 也就是說到 2^n 後趨近於count, 整個過程執行log2n次

*/public

static

void

log2n

(int count)

線性階o(n)
/**

* o(n) 線性階, 即**迴圈次數隨count的變化成線性變化

*/public

static

voidn(

int count)

}

線性對數階o(nlog2n):線性階與對數階的巢狀

/**

* o(nlog2n) 執行緒對數階, 線性階與對數階的巢狀

*/public

static

void

nlog2n

(int count)

}}

平方階o(n^2):雙層線性迴圈巢狀

/**

* o(n2) 平方階, 就是雙層線性迴圈巢狀

*/public

static

voidn2(

int count)

}}

立方階o(n^3):三層線性迴圈巢狀

/**

* o(n3) 立方階, 就是三層線性迴圈巢狀

*/public

static

voidn3(

int count)}}

}

k次方階o(n^k):參考二階和三階,即k次的執行緒迴圈巢狀

指數階o(2^n)演算法複雜度的優先順序順序

o(1) < o(log2n) < o(n) < o(nlog2n) < o(n^2) < o(n^3) < o(n^k) < o(2^n)

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

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...

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

演算法複雜度 時間複雜度和空間複雜度 關鍵字 演算法複雜度 時間複雜度 空間複雜度 1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時 間多,哪個演算法花費的時間少就可以...

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

演算法的時間複雜度是指執行演算法所需要的計算工作量。n稱為問題的規模,當n不斷變化時,時間頻度t n 也會不斷變化。但有時我們想知道它變化時呈現什麼規律。為此,我們引入時間複雜度概念。一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t n 表示,若有某個輔助函式f n 存在乙個正...