程序员必须掌握的核心算法

 我来答
生活科普君Y
2023-05-04 · TA获得超过103个赞
知道小有建树答主
回答量:1393
采纳率:76%
帮助的人:19.6万
展开全部

程序员掌握核心算法,还不收录

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)最小费用最大流:最小费用路、消遣。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式