算法的補(bǔ)充知識(shí)點(diǎn)

關(guān)于算法的一些基礎(chǔ)知識(shí)點(diǎn)。

通俗來講,算法是解決問題的有限步驟。

算法的特性:
輸入輸出:一定有輸出,不一定有輸入。
有窮性:執(zhí)行步數(shù)有限,執(zhí)行時(shí)間可控。
可行性:可以被計(jì)算機(jī)執(zhí)行。
確定性:同樣的輸入,有同樣的輸出。

算法特性

好算法滿足的要求:
正確性:保證算法可以得出正確的結(jié)果。
(1)無語法錯(cuò)誤
(2)合法的輸入,可以得到正確的輸出
(3)非法的輸入,也可以得到符合規(guī)則的輸出
(4)對(duì)于刁難的輸入,也可以得到正確的輸出
可讀性:易于閱讀,理解和交流。
健壯性:指容錯(cuò)能力
時(shí)間效率高和儲(chǔ)存量低:響應(yīng)快,不好存儲(chǔ),用最少的錢,創(chuàng)造最大的價(jià)值。

算法要求

算法的效率評(píng)估:
1.事后統(tǒng)計(jì)法:通過輸入大量數(shù)據(jù),在計(jì)算機(jī)上運(yùn)行程序,計(jì)算運(yùn)行時(shí)間來判斷效率高低。(消耗非常多的人力,物力,并且容易受程序所運(yùn)行的環(huán)境影響,不推薦)
2.事前估算法:通過統(tǒng)計(jì)學(xué)來計(jì)算算法的效率高低。(輸入規(guī)模和算法本身)

算法復(fù)雜度計(jì)算(O(n)):
推導(dǎo):
1.將常數(shù)項(xiàng)全部用1替代。
2.只保留最高階項(xiàng)。
3.把與最高階項(xiàng)相乘的常數(shù)去掉,如果最高階是常數(shù)則以1替代。

常見的時(shí)間復(fù)雜度.png

最壞時(shí)間復(fù)雜度:運(yùn)行時(shí)間將不會(huì)再壞了,一般運(yùn)行時(shí)間都算最壞的時(shí)間復(fù)雜度。
平均時(shí)間復(fù)雜度:通過數(shù)據(jù)估算得到的平均時(shí)間復(fù)雜度。

空間復(fù)雜度:算法計(jì)算過程所需要用到的空間大小。

以上,就是關(guān)于算法的一些基礎(chǔ)知識(shí)點(diǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容