算法的定義
算法: 一個有限的指令集合,接受一些輸入奕扣,產(chǎn)生輸出掌敬,在有限步驟之后,會進(jìn)行終止
算法中的指令:
有充分明確的目標(biāo)
計算機(jī)能處理的范圍之內(nèi)
描述應(yīng)不依賴于任何一種計算機(jī)語言以及具體的實現(xiàn)
偽代碼: 選擇排序算法
void sort( collection test) {
for from 0 to test.length{
從list中每次挑選出一個最小的放到一個新的集合newTest
中奔害,將亂序的test中最小的元素放在newTest集合的尾部位
置
}
}
什么是好的算法华临?
如何衡量算法的優(yōu)劣:
空間復(fù)雜度: S(n)
根據(jù)算法寫成的程序在執(zhí)行時占用的存儲單元的長度芯杀。這個長度往往
和輸入數(shù)據(jù)的規(guī)模有關(guān)雅潭。空間復(fù)雜度過高棋弥,有可能導(dǎo)致使用的內(nèi)存超
限诚欠,造成程序的非正常中斷。
時間復(fù)雜度: T(n)
根據(jù)算法寫成的程序在執(zhí)行的時候耗費時間的長度轰绵,這個長度往往和
輸入的數(shù)據(jù)規(guī)模有關(guān),時間復(fù)雜度過高可能導(dǎo)致我們在有生之年都等
不到結(jié)果
優(yōu)秀的程序員設(shè)計算法盡可能綜合二者復(fù)雜度降到最優(yōu)
時間復(fù)雜度漸進(jìn)表示法 :(資料)
https://www.cnblogs.com/sage-blog/p/3891012.html
Θ記號 漸進(jìn)確界
ο記號 漸進(jìn)上界
Ω記號 漸進(jìn)下界
o記號 非漸進(jìn)緊確的上界
ω記號 非漸進(jìn)緊確的下界