關(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ù)雜度:運(yùn)行時(shí)間將不會(huì)再壞了脖捻,一般運(yùn)行時(shí)間都算最壞的時(shí)間復(fù)雜度阔逼。
平均時(shí)間復(fù)雜度:通過數(shù)據(jù)估算得到的平均時(shí)間復(fù)雜度。
空間復(fù)雜度:算法計(jì)算過程所需要用到的空間大小郭变。
以上颜价,就是關(guān)于算法的一些基礎(chǔ)知識(shí)點(diǎn)。