常數階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 存在乙個正...