常用算法
文章平均质量分 90
Angry_Caveman
Talk is cheap,show me the code
展开
-
【动态规划(一)】动态规划基础
1.1 动态规划简介动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程原创 2017-07-22 18:26:41 · 554 阅读 · 0 评论 -
【动态规划(二)】迪杰斯特拉算法与普里姆算法
按理说迪杰斯特拉算法与普里姆算法不是一类东西,前者是最短路径算法,后者是最小生成树算法,为什么会放在一块呢?因为二者实在是太相似了。不管是从代码结构上以及分析方法上来说。对于我这种小白而言,看一百遍,合上书还是会忘了从哪开始编写代码。好在学了一些动态规划的东西,现在这两个算法从头写到尾是没有问题了。原创 2017-08-06 01:33:46 · 4863 阅读 · 0 评论 -
【贪心算法(一)】贪心算法基础
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。与动态规划不同的是,贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。原创 2017-08-21 14:11:53 · 852 阅读 · 0 评论 -
【动态规划(三)】经典背包问题
背包问题属于比较经典的动态规划问题,此处只记录了比较基础的三类,供初学者参考练习。原创 2017-08-15 09:56:17 · 407 阅读 · 0 评论 -
【贪心算法(二)】三类区间问题
本节记录了贪心算法的三类区间问题:互不相交,区间覆盖,区间选点。按照自己的思路进行了一定的解析。较为简单,不说废话了原创 2017-08-24 14:51:55 · 965 阅读 · 1 评论 -
【贪心算法(三)】并查集和克鲁斯卡尔算法
1介绍本节将记录两个问题,(1)并查集;(2)克鲁斯卡尔算法;。这是贪心算法最后一节,可能不是所有的问题都与贪心算法有关,但是都是我认为有趣且比较重要的东西,有必要统一学习记录一下。可能我举例不太文雅,但绝对没有歧视和嘲讽任何群体的意思,只是为了让人印象深刻一些。2并查集2.1原理2.1.1基础我们在使用QQ或者其他社交软件的时候,会发现有一个好友推送的功能,也就是向你推荐原创 2017-09-08 14:39:56 · 2047 阅读 · 1 评论 -
【分治算法】归并排序,快速排序和汉诺塔
分治算法已经是本人所写的常用算法系列的第三个了,可能只会写这一节,对比动态规划与贪心算法我们来认识一下分治算法。原创 2017-09-13 13:53:53 · 1167 阅读 · 0 评论