大剑无锋之如何评判一个算法的优劣【面试推荐】
①時間復雜度:同樣的輸入規(guī)模(問題規(guī)模)花費多少時間
②空間復雜度:同樣的輸入規(guī)模花費多少空間(主要是內(nèi)存)
以上兩點越小越好
③穩(wěn)定性(健壯性):不會因為輸入的不同而導致不穩(wěn)定的情況發(fā)生
④算法思路是否簡單(可讀性):越簡單越容易實現(xiàn)越好
補充:
?
同一問題可用不同算法解決,而一個算法的質量優(yōu)劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進算法。一個算法的評價主要從時間復雜度和空間復雜度來考慮。
?
時間復雜度
算法的時間復雜度是指執(zhí)行算法所需要的計算工作量。一般來說,計算機算法是問題規(guī)模n 的函數(shù)f(n),算法的時間復雜度也因此記做。
T(n)=Ο(f(n))
因此,問題的規(guī)模n 越大,算法執(zhí)行的時間的增長率與f(n) 的增長率正相關,稱作漸進時間復雜度
?
空間復雜度
算法的空間復雜度是指算法需要消耗的內(nèi)存空間。其計算和表示方法與時間復雜度類似,一般都用復雜度的漸近性來表示。同時間復雜度相比,空間復雜度的分析要簡單得多。
?
正確性
算法的正確性是評價一個算法優(yōu)劣的最重要的標準。
?
可讀性
算法的可讀性是指一個算法可供人們閱讀的容易程度。
?
健壯性
健壯性是指一個算法對不合理數(shù)據(jù)輸入的反應能力和處理能力,也稱為容錯性。
擴展資料
算法可大致分為基本算法、數(shù)據(jù)結構的算法、數(shù)論與代數(shù)算法、計算幾何的算法、圖論的算法、動態(tài)規(guī)劃以及數(shù)值分析、加密算法、排序算法、檢索算法、隨機化算法、并行算法,厄米變形模型,隨機森林算法。
算法可以宏泛的分為三類:
一,有限的,確定性算法 這類算法在有限的一段時間內(nèi)終止。他們可能要花很長時間來執(zhí)行指定的任務,但仍將在一定的時間內(nèi)終止。這類算法得出的結果常取決于輸入值。
二,有限的,非確定算法 這類算法在有限的時間內(nèi)終止。然而,對于一個(或一些)給定的數(shù)值,算法的結果并不是唯一的或確定的。
三,無限的算法 是那些由于沒有定義終止定義條件,或定義的條件無法由輸入的數(shù)據(jù)滿足而不終止運行的算法。通常,無限算法的產(chǎn)生是由于未能確定的定義終止條件。
參考資料:算法--百度百科
總結
以上是生活随笔為你收集整理的大剑无锋之如何评判一个算法的优劣【面试推荐】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大剑无锋之后台运行程序并输出日志到某文件
- 下一篇: 大剑无锋之分布式和微服务分别是什么?【面