八大基礎演算法 自己的通俗理解
一些基礎演算法的理解,包括模擬法的理解。
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 八大基礎排序排序
- Paxos演算法的通俗理解演算法
- 八大基礎排序總結排序
- VO/DTO/DO/PO通俗的解釋加上自己的理解
- RSA演算法,自己的理解!演算法
- KMP字串匹配演算法 通俗理解KMP字串匹配演算法
- PHP演算法之四大基礎演算法PHP演算法
- 程式設計師必知的10大基礎實用演算法程式設計師演算法
- 如何通俗的理解散度?
- 對maven的通俗理解,goodMavenGo
- 八大基本資料型別資料型別
- 記憶體--通俗理解記憶體
- 《資料結構與演算法》之十大基礎排序演算法資料結構演算法排序
- 3.2 神經網路的通俗理解神經網路
- 怎麼通俗易懂的理解OSPF?
- 程式設計師必須知道的10大基礎實用演算法及其講解程式設計師演算法
- 一文詳解 Java 的八大基本型別!Java型別
- 通俗易懂地理解ReduxRedux
- 帶你通俗理解httpsHTTP
- 通俗理解一些概念
- 詞向量word to vector通俗理解
- 如何通俗地理解 Gradle?Gradle
- 通俗理解LDA主題模型LDA模型
- C# 記憶體的理解 通俗說C#記憶體
- 通俗易懂的來理解Iaas,Paas,SaaS
- 如何通俗理解泊松分佈?
- 通俗理解.NET 6 Minimal APIsAPI
- 如何通俗地理解傅立葉變換?
- ? 快速上手三大基礎 React HooksReactHook
- 通俗地說決策樹演算法(一)基礎概念介紹演算法
- 自己對Binder的理解
- 通俗理解鴨子型別是幹什麼的型別
- 關於MySQL中的自聯結的通俗理解MySql
- 如何通俗理解設計模式及其思想?設計模式
- Java中4大基本加密演算法解析Java加密演算法
- php 傳值與傳引用的理解(通俗易懂)PHP
- 自己對分頁的理解
- RocketMQ 自己的整理和理解MQ