演算法學習感受

2021-10-19 21:04:24 字數 620 閱讀 4541

經過一段時間的資料查閱發現程式中的演算法主要就是 lifo,fifo,圖,表,和樹,還有就是排序問題結構, 剛開始對演算法的問題接觸不多,所以一直沒有時間仔細研究過這個問題(csdn上有很多講解的,而且有的講解的非常好)
1.首先那lifo來講, 是典型的棧結構,後進先出

實現方式常接觸的就是通過鍊錶實現棧結構,或者就是通過陣列下標的方式實現棧結構

2.其次就是fifo,典型的堆結構,先進先出

同上鍊表和陣列下標都可以實現

3. 以上兩種就是很簡單的演算法,但是是實現堆記憶體池和棧記憶體池的基礎,同時再設計執行緒棧的時候也會使用(**哈,畢竟沒咋碼過這方面的**)

4. 表的演算法就用太多了,鍊錶幾乎每天都在用,hash 簡單的hash構造也在使用

5. 排序,和資料篩選的問題,快排時用的最多的,會了快速排序就意味著其他排序就沒啥太大問題了,排序問題中就快速排序的問題難度中等

6. 剩下的問題就是圖結構,沒接觸過,所以就沒啥感覺,前面講的在實際過程中還應用過,這時圖結構就是沒有基礎的機會

7. 剩下的就是樹結構,編譯器中常使用,核心中也有使用,接觸的不多,最近再看,突然發現竟然是遞迴思想的終極應用,拓撲圖的構造應該可以用到,還沒有開始碼**,具體的效果還不算太清楚.

演算法學習 Union Find演算法

union find演算法有它的實際用途。多用於動態連通的應用場景。union find演算法是 給出兩個節點,判斷它們是否連通,如果連通,是不需要給出具體的路徑的 舉兩個例子作為主要表現 1 在網路連線中,當發現沒有連線的兩個節點,可以把他們連線起來,一旦節點都連線起來,又能把多餘的線拆除,這時候...

演算法學習 KM演算法

km演算法 用於求二分圖的最佳完美匹配 即權值最大的完美匹配 如果你也是個剛來學習km演算法的人 大概的用途肯定還是知道的吧 還是直接說重點吧 首先 理解km演算法前 必須有以下3個概念 1.可行頂標 對於乙個賦值二分圖g x,y,e,w x,y 代表二分圖的兩邊頂點標號 e代表邊 w代表邊的權值 ...

演算法 演算法學習01

貪婪 可以理解為最簡單基礎的求解方式,特點是 短視性 從這個特點入手很容易理解每一步取其最優的原理。雖然最終結果不一定是最好的,但是一定是較好的而且是最簡便的。因此在不過分追求最優結果或者對速度的要求高於結果的情況下,貪婪是不錯的選擇。分治可以理解為大事化小小事好搞,與貪婪的每一步的 串聯 不同,分...