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