【算法杂谈】本博客算法总结

【DFS与BFS】

分别是深度优先搜索与广度优先搜索,一开始用于树的遍历,比如下面的这棵树。

那么这棵树的深度优先遍历就是1-2-4-8-9-5-10-11-3-6-12-13-7-14-15,细心的读者就可以发现。这种搜索方式简单来说就是一直走,走的越深越好。

那广度优先遍历呢,它的遍历结果就是1-2-3-4-5-6-7-8-9-10-11-12-13-14-15,规则与上面的相反。

最后通过递归实现,一般应用在最短路、暴力、图的遍历等方面。

———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

【DP(动态规划)】

DP简单来说就是递推——通过上一次计算的结果计算出这一次的结果,以此类推。

写关于动态规划的题首先要搞清楚状态与递推方程,以及起始点。这样的话写程序就很简单了。

———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

贪心

迪杰斯特拉与Floyd(最短路算法)

各种排序

模拟

暴力

线段树(键人正在琢磨,请看官稍安勿躁)

RMQ(前缀和)

二分(暂时先不写了)

三分(先不写了)

下面是我从各大OJ找到的几道优秀例题————————————————————————————————————————————————————————

http://poj.kechuangedu.com/oj/home/problem.htm?problemID=688(这是一道进阶的线段树,过一段时间之后会写出题解)

原文地址:https://www.cnblogs.com/lijiaxin-blog-cpp/p/5610563.html