什么是算法?
高德納在《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》里對算法的歸納:
- 輸入:一個(gè)算法必須有零個(gè)或以上的輸入量
- 輸出:一個(gè)算法應(yīng)有一個(gè)或以上輸出量
- 明確性:算法的描述必須無歧義,實(shí)際運(yùn)行結(jié)果是確定的
- 有限性:必須在有限個(gè)步驟內(nèi)結(jié)束
- 有效性:又稱可行性。能夠被執(zhí)行者實(shí)現(xiàn)
舉個(gè)例子,現(xiàn)在有這么一個(gè)需求,在一個(gè)只有正整數(shù)的數(shù)組里,通過從大到小的方式來把它做一個(gè)排序,代碼如下:
var arr = [1,5,88,9,4,7]
function sort(){
//你的代碼
}
console.log(sort(arr))
visualgo里面有一些思路實(shí)現(xiàn)的模擬,有興趣的可以點(diǎn)擊去看一下
書籍推薦:《數(shù)據(jù)結(jié)構(gòu)與算法分析》