八大基礎演算法 自己的通俗理解
一些基礎演算法的理解,包括模擬法的理解。
1.模擬法:
將自然的過程或者語言直白的程式化,比如題目中的求解過程,我們直接程式化模擬求解。
2.字串處理:
常用的字串操作,KMP字串匹配演算法(用於複雜度高,需要最佳化時)。
3.遞迴:
古之慾明明德於天下者,先治其國;欲治其國者,先齊其家;欲齊其家者,先修其身;欲修其身者,先正其心;欲正其心者,先誠其意;欲誠其意者,先致其知,致知在格物。物格而後知至,知至而後意誠,意誠而後心正,心正而後身修,身修而後家齊,家齊而後國治,國治而後天下平。
當棧底不可見的時候,我們更適合用遞迴,當然遞迴也可以轉化為 陣列或變數和迴圈,但大多數情況下沒有這個必要。
很多簡單的遞迴我們完全可以利用迴圈來解決。比如很淺的呼叫之前的資料,且資料量固定。
和迴圈相比是兩種思考的方向。
4.分治法:
將大的問題轉化為很多小問題來解決,比如我要給8個數排序,我可以先給兩組4個數排序,給4個數排序可以先給兩組兩個數排序,這樣就講大問題化成了小問題。
5.排序:
熟練的掌握sort()的用法。sort(arr,arr+len,cmp),瞭解各大排序法的思想。
6.列舉法:
當可能的結果不多時,我們可以利用模擬法求解,然後利用陣列儲存,直接利用列舉法進行匹配。
7.貪心演算法:
選擇目前的最優解,還要選取合適的策略,此處的最優解可以累積成為最後的最優解。對於一些處理過的值,可以進行標記和儲存,便於我們從中選擇最優解,並在最優解的基礎上更加接近最後的最優解。
8.遞推法:
分為順推和逆推,根據相對應的關係和值進行遞推,比如斐波那契數列就是順推。順推有點像模擬。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2168550/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 八大基礎排序排序
- VO/DTO/DO/PO通俗的解釋加上自己的理解
- 八大基礎排序總結排序
- 通俗地說決策樹演算法(一)基礎概念介紹演算法
- 如何通俗的理解散度?
- 寫給自己的python基礎Python
- 通俗易懂的Redis資料結構基礎教程Redis資料結構
- 記憶體--通俗理解記憶體
- 帶你通俗理解httpsHTTP
- 深入理解Triple DES演算法:安全加密的基礎與應用演算法加密
- 怎麼通俗易懂的理解OSPF?
- 3.2 神經網路的通俗理解神經網路
- 通俗理解一些概念
- 詞向量word to vector通俗理解
- 通俗易懂地理解ReduxRedux
- 通俗理解.NET 6 Minimal APIsAPI
- 演算法基礎演算法
- 基礎演算法演算法
- 通俗易懂的來理解Iaas,Paas,SaaS
- C# 記憶體的理解 通俗說C#記憶體
- 回到基礎:理解 JavaScript DOMJavaScript
- [翻譯]理解 HTTP 基礎HTTP
- 【css基礎】如何理解transform的matrix()用法CSSORM
- 指標和標籤的基礎理解指標
- 如何通俗理解泊松分佈?
- 八大排序演算法—16張圖搞懂基數排序排序演算法
- 框架的基礎使用 (持續更新給自己看)框架
- 手把手教你基於Netty實現一個基礎的RPC框架(通俗易懂)NettyRPC框架
- 演算法基礎模板演算法
- 關於MySQL中的自聯結的通俗理解MySql
- python-八大演算法Python演算法
- Nginx 基礎理解和安裝Nginx
- 資料庫基礎概念理解資料庫
- Java基礎——深入理解反射Java反射
- 0基礎演算法基礎學演算法 第六彈 遞迴演算法遞迴
- 通俗易懂的Paxos演算法-基於訊息傳遞的一致性演算法演算法
- java基礎 韓順平老師的 物件導向(基礎) 自己記的部分筆記Java物件筆記
- Java基礎——深入理解類的載入Java