工程實踐中最經常使用的數據結構與算法

轉自:http://www.cricode.com/3140.html

      Mark一下,之後慢慢研究。

最經常使用的算法

1.圖搜索算法(BFS,DFS),深度優先搜索尤爲重要,由於它能給出不少圖的結構信息。html

2.排序算法(比較排序和桶排序思想)程序員

3.通用的動態規劃算法正則表達式

4.匹配算法和網絡流算法算法

5.正則表達式和字符串匹配算法網絡

最經常使用的數據結構

1.圖,尤爲是樹結構特別重要。數據結構

2.Maps結構數據結構和算法

3.Heap結構學習

4.Stacks/Queues結構spa

5.Trie.net

 

其餘一些相對比較經常使用的數據算法還有:貪心算法、Prim’s / Kruskal’s算法、Dijkstra’s最短路徑算法等等。

頗有意思的話:

 

「咱們不須要你在不參考任何資料,可以實現紅黑樹;咱們須要的是你能在實踐當中,選擇恰當的數據結構完成程序開發;在必要的時候,能在已有的數據結構基礎上進行適當改進,知足工程須要。但要作到這一點,你須要掌握基礎的算法和數據結構,你須要理解並應用一些高級數據結構和算法的思想。所以,在程序員這條道路上,你要想走得更遠,你須要活用各類數據結構,你須要吸取知名算法的一些思想,而不是死記硬背算法自己。」

      1)什麼叫作理解算法了思想?

 

說一說程序員「觸類旁通」的能力

 

2)怎麼樣才能活用各類數據結構?

你能很清楚的知道何時用hash表,何時用堆或者紅黑色?在什麼應用場景下,能用紅黑色來代替hash表麼?要作到這些,你須要理解紅黑樹、堆、hash表各有什麼特性,彼此優缺點等,不然你不可能知道何時該用什麼數據結構。


另外,保存一個關於算法、數據結構學習總結的乾貨文章:

http://blog.csdn.net/v_july_v/article/details/6543438 

向博主v_JULY_v致敬!

相關文章
相關標籤/搜索