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