算法是一切程序設計的靈魂和基礎。
很多開發者都知道“程序=數據結構+算法”這個著名的公式,簡單點來說,我更喜歡錶單成爲“後臺程序=數據+邏輯”。
1 什麼是算法?
字面含義:
算法是用於計算的方法,通過這種方法可以達到預期的計算結果。
其它專家說:
算法是解決實際問題的一種精確描述方法、算法是對特定問題的求解步驟的一種精確描述方法。
廣泛定義:
算法是模型分析的一組可行的、確定的和有窮的規則。
通俗的講:
算法可以理解爲一個完整的解題步驟,由一些基本運算和規定的運算順序構成。
再簡單的講:
算法:解決問題 的方法。
特點:有窮性 確切性 輸入 輸出 可行性
2 算法分類
2.1 按照應用來分類
基本算法、數據結構算法、幾何算法、圖論算法、規劃算法、數值分析算法、加密算法、排序算法、查找算法
2.2 按照確定性
確定性算法、非確定性算法
2.3 算法的思路來劃分
遞推算法、遞歸算法、窮舉算法、貪婪算法、分治算法、等