算法的一些讀後感

今天讀了一些文章,講的是算法的學習。

文中有一句話我記下來, 算法是很多的,數據結構相對較少,算法都是基於某些數據結構進行操作。所以將數據結構學的通透了,在多做一些題,可能會好一點。


學習數據結構的時候我們都是先學習創建,然後就是遍歷。無論什麼算法,落到程序實現的時候都是循環和判斷。而且大部分都需要遍歷。

鏈表就是從前到後就可以,雙向鏈表,兩邊可以隨便遍歷。循環鏈表,自然需要進行head 、tail 。

樹,結構上就是根和葉子。所以就有深度優先,和廣度優先。

如果是二叉樹,只有左節點,和右節點。所以遍歷就有根左右,左右根,先根遍歷,和後根遍歷。

圖就有很多存儲了,比如用二位數組。或者哈希表,(圖挺多的,我還沒研究懂)就會產生很多算法。迷宮問題。你的數據結構不同。實現的時候有一定的不同。


排序:

冒泡排序:模仿水沸騰。n和n+1進行比較,每次把最大的放在最後。改進的雙向冒泡,就是把大的放在後面,同時把小的放在前面。

快速排序:是冒泡的改進,思想就是一次遍歷,把一個元素,左側比他小,右側比他大。然後,左側的在執行,右側在執行。

選擇排序:就是每次選擇一個最大的,放在與第一個交換,然後選擇次大的與第二個交換。

歸併排序:就是將有序的兩個數組,遍歷比較,放到第3個數組中。一個遍歷完成後,剩下都放進去。   重點,是你要能把原數組的每2個看做一個單獨的數組。



再說幾個我會的簡單算法:

貪心算法。你的數據結構進行排序後,按照一定的價值觀,進行取就行。

線性規劃。你主要就是把一個大問題,化解成小問題,小問題不斷小,在變大,進行求解。



發佈了52 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章