1,十大排序算法
簡單排序:插入排序、選擇排序和冒泡排序(必需)
分治排序:快速排序、合並排序(必選,快速排序也要註意中軸線的選擇方法)
分配排序:桶排序和基數排序。
樹排序:堆排序(必需)
其他:計數排序(必修)和希爾學習十大算法。如果妳不懂它們,我還是推薦妳去看書,因為看完書妳可能不僅知道這個算法怎麽寫,還知道它是怎麽來的。推薦的書是《算法第四版》,非常詳細,很好理解,有很多插圖。
3.搜索和回溯算法
貪婪算法(必需)
啟發式搜索算法:A*尋路算法(理解)
地圖著色算法,N皇後問題,最佳加工順序。
旅行商問題之所以方便,只是因為它與某些算法有關。我想如果可能的話,我應該全部學會。就像貪婪算法的思想壹樣,妳必須學會它。建議通過刷題學習,leetcode直接刷題目。
4.動態規劃
樹DP:01背包問題
線性DP:最長公共子序列和最長公共子序列。
區間DP:矩陣的最大值(和與積)
數字遊戲
狀態壓縮DP:旅行推銷員
這裏建議先了解什麽是動態規劃,然後leetcode再刷題。反正壹般都是上面的問題。我後面還會寫下我學到的套路,有點類似於我之前寫的遞歸,是壹種體驗。
5.字符匹配算法
正則表達式
模式匹配:kmp,博耶摩爾我想妳差不多知道KMP和博耶摩爾。
6.流相關算法
最大流:最短增廣路徑,Dinic算法最大流最小割:最大收益問題,網格檢索問題最小成本最大流:最小成本路徑,消遣,我只學過壹些算法,有興趣的可以學學。