最小費用流演算法
發布時間: 2024-01-11 04:02:03
A. 程序員必須掌握的核心演算法
程序員掌握核心演算法,還不收錄
1、十大排序演算法
(1)簡單排序:插入排序、選擇排序、冒泡排序(必學)。
(2)分治排序:快速排序、歸並排序(必學,快速排序還要關注中軸的選取方式)。
(3)分配排序:桶排序、基數排序。
(4)樹狀排序:堆排序(必學)。
(5)其他:計數排序(必學)、希爾排序。
對干十大演算法的學習,假如你不大懂的話,那麼推薦你去看書,因為看了書,你可能不僅僅知道這個演算法怎麼寫,還能知道他是怎麼來的。推薦書籍是《演算法第四版》,這本書講的很詳細,而且配了很多圖演示,還是挺好懂的。
2、搜索與回溯演算法
(1)貪心演算法(必學);
(2)啟發式搜索演算法:A*尋路演算法(了解);
(3)地圖著沖猜爛色演算法、N 皇後問題、最優加工順序;
(4)旅行商問題。
這方便的只是都是一些演算法相關的,像貪心演算法的思想兆納,就必須學的了。建議通過刷題來學習,leetcode 直接專題刷。
3、動態規劃
(1)樹形DP:01背包問題;
(2)線性DP:最長公共子序列、最長公共子串;
(3)區間DP:矩陣最大值(和以及積);
(4)數位DP:數字游戲;
(5)狀態壓縮DP:旅行商。
這里建議先了解動態規劃是什麼,之後 leetcode專題刷,反正就一般上面這幾種題型。
4、字元匹配演算法
(1)正則表達式;
(2)模式匹配:KMP、Boyer-Moore。
5、流相關演算法
(1)最大流:最短增廣路、Dinic 演算法。
(2)最大流最小割:最大收益問題、方格取數問題。
(3)最小費用最大流:最小散漏費用路、消遣。
熱點內容