1、算法的五個(gè)基本特性分別是:輸入、輸出、有窮性、確定性和可行性。
輸入/輸出:算法具有零個(gè)或多個(gè)輸入,算法至少具有一個(gè)或多個(gè)輸出。
2、有窮性:是指算法在執(zhí)行有限的步驟后,自動(dòng)結(jié)束而不會(huì)出現(xiàn)無限循環(huán),并且每個(gè)步驟在可接受的時(shí)間內(nèi)完成。
3、確定性:算法的每個(gè)步驟都有明確的含義,不會(huì)出現(xiàn)二義性。
4、可行性:算法的每一步都必須是可行的,也就是說,每一步都通過執(zhí)行有限次數(shù)完成。
首先我們一定要知道的算法的第一個(gè)特性——有窮性。它是指一個(gè)算法必須總是在執(zhí)行有限的步驟之后結(jié)束,并且每一步都必須在有限的時(shí)間內(nèi)完成。這個(gè)很容易理解,對(duì)于一個(gè)算法,我們肯定要讓它能夠在有限的時(shí)間完成任務(wù),不然要花費(fèi)無窮無盡的時(shí)間才能得出結(jié)果,那這個(gè)算法無疑是失敗的。
其次是確定性,其實(shí)小編更愿意叫它“無二義性”。顧名思義,對(duì)于每種情況下的操作,算法中都有明確的規(guī)定,不會(huì)產(chǎn)生二義性。舉個(gè)例子:你的同學(xué)有兩個(gè)叫張三的,如果你不給這兩個(gè)叫張三的標(biāo)記他們獨(dú)有的標(biāo)簽,那么老師在叫張三的時(shí)候就會(huì)產(chǎn)生二義性,計(jì)算機(jī)也是如此,它不知道該選擇哪一個(gè)“張三”。
第三個(gè)重要特性是可行性,它是指算法中的所有操作都可以通過已經(jīng)實(shí)現(xiàn)的操作運(yùn)算執(zhí)行有限次來實(shí)現(xiàn)。通俗點(diǎn)講,就是針對(duì)實(shí)際問題設(shè)計(jì)的算法,執(zhí)行后能夠達(dá)到滿意的結(jié)果。
第四個(gè)第五個(gè)重要特性小編將它們合在一起說了。它們分別是輸入和輸出。需要特別注意的是,對(duì)于一個(gè)算法來說,輸入可以是0個(gè)或0個(gè)以上。而輸出必須有一個(gè)或一個(gè)以上的輸出,沒有輸出的算法沒有任何的意義。