算法
algorithm
定義:解決給定問題的確定的計(jì)算機(jī)指令序列,用以系統(tǒng)地描述解決問題的步驟。
學(xué)科:計(jì)算機(jī)科學(xué)技術(shù)_理論計(jì)算機(jī)科學(xué)_算法設(shè)計(jì)與分析
相關(guān)名詞:指令 程序 軟件開發(fā)
圖片來源:視覺中國
【延伸閱讀】
算法是解題方案準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,代表著用系統(tǒng)的方法描述解決問題的策略機(jī)制。也就是說,對(duì)于有著一定規(guī)范的輸入,算法能使得我們?cè)谟邢迺r(shí)間內(nèi)獲得所要求的輸出。如果一個(gè)算法有缺陷,或不適合于某個(gè)問題,執(zhí)行這個(gè)算法將不會(huì)解決這個(gè)問題。
算法應(yīng)該具有以下五個(gè)重要的特征:
1.有窮性:指算法必須能在執(zhí)行有限個(gè)步驟之后終止。
2.確切性:算法的每一步驟必須有確切的定義。
3.輸入項(xiàng):一個(gè)算法有0個(gè)或多個(gè)輸入,以刻畫運(yùn)算對(duì)象的初始情況。所謂0個(gè)輸入是指算法本身預(yù)設(shè)了初始條件。
4.輸出項(xiàng):一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對(duì)輸入數(shù)據(jù)加工后的結(jié)果。沒有輸出的算法是毫無意義的。
5.可行性:算法中執(zhí)行的任何計(jì)算步驟都可以被分解為基本的可執(zhí)行的操作步驟,即每個(gè)計(jì)算步驟都可以在有限時(shí)間內(nèi)完成(也稱之為有效性)。
同一問題可以用不同算法解決,不同算法的質(zhì)量優(yōu)劣將影響解決問題的效率。算法的優(yōu)劣有眾多不同的衡量指標(biāo),對(duì)于實(shí)際問題還有單獨(dú)的衡量標(biāo)準(zhǔn)。但通用的衡量標(biāo)準(zhǔn)有以下5個(gè):
1.正確性:對(duì)給定的問題可以得出正確的結(jié)果,是評(píng)價(jià)一個(gè)算法優(yōu)劣的最重要的標(biāo)準(zhǔn)。當(dāng)今的一些算法基于大數(shù)據(jù)和統(tǒng)計(jì)學(xué)的理論,也更注重算法得出正確結(jié)果的概率。
2.可讀性:指一個(gè)算法可供人們閱讀的容易程度。
3.魯棒性:指一個(gè)算法對(duì)不合理數(shù)據(jù)輸入的反應(yīng)能力和處理能力,也稱為容錯(cuò)性。
4.時(shí)間復(fù)雜度:指執(zhí)行算法所需要的時(shí)間代價(jià)。一般來說,計(jì)算機(jī)算法是問題規(guī)模的函數(shù)。
5.空間復(fù)雜度:指算法需要消耗的內(nèi)存空間。
我國創(chuàng)立的算法有很多,其思想被世人廣泛沿用至今。例如魏晉時(shí)期的數(shù)學(xué)家劉徽首創(chuàng)割圓術(shù),為計(jì)算圓周率建立了嚴(yán)密的理論和完善的算法;中國南宋時(shí)期的數(shù)學(xué)家秦九韶提出一種多項(xiàng)式簡化算法,即秦九韶算法等等。
其實(shí)算法的初衷,是實(shí)現(xiàn)更高效、更公平的信息分發(fā),但是伴隨著算法對(duì)移動(dòng)互聯(lián)網(wǎng)的統(tǒng)治,算法濫用現(xiàn)象越來越嚴(yán)重。為加強(qiáng)互聯(lián)網(wǎng)信息服務(wù)算法綜合治理,有效推動(dòng)《互聯(lián)網(wǎng)信息服務(wù)算法推薦管理規(guī)定》落地見效,2022年4月8日,中央網(wǎng)信辦牽頭開展“清朗·2022年算法綜合治理”專項(xiàng)行動(dòng),劍指大數(shù)據(jù)殺熟、算法歧視、信息繭房等行業(yè)現(xiàn)象。
(延伸閱讀作者:大連理工大學(xué)計(jì)算機(jī)學(xué)院教授 楊鑫)
責(zé)任編輯:張鵬輝