
算法模板
隐藏玩家
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分搜索技术
二分搜索技术使用的前提是:有序的递增序列算法分析:我们根据序列的有序性来判断序列中是否含有我们要找的值。图解过程如下:图片的前四章为查找数字17和最后一个为查找18(没有找到的情况)#incldue<iostream>#incldue<algorithm>using namespace std;const int maxn=10000+5;int A[...原创 2019-03-28 21:40:43 · 261 阅读 · 0 评论 -
兵贵神速-快速排序-(分治)
算法实现:(1)分解:先从数据中选择一个基准元素如然后呢将大于该基准元素得数据放在右边将小于该基准元素的数据放在后面。(2)治理:对两个子序列分别进行快速排序。(3)合并:将拍好顺序的连个子序列合并在一起,得到原问题的解。#include<iostream>using namespace std;const int maxn=1000+5;int A[maxn];voi...原创 2019-03-29 19:43:20 · 1320 阅读 · 0 评论 -
会议安排-贪心算法
在一段时间之内安排最多的会议:算法分析:每次选择具有最早结束时间且与已安排的会议相容的会议安排。代码如下:#include<iostream>#include<algorithm>using namespace std;const int maxn=1000+5;struct meet{ int beg;//会议开始使劲按 int end;//会议结束时间...原创 2019-03-30 13:16:29 · 789 阅读 · 2 评论 -
哈夫曼编码-贪心算法
哈夫曼编码的基本思想时以字符的使用频率作为权构建一颗哈夫曼树,然后利用哈夫曼树对字符进行编码。构造一颗哈夫曼树,是将所有的编码的字符作为叶子结点,该字符在文件中的使用频率作为叶子结点的权值,以自底向上的方式,通过n-1次的”合并“运算后构造处一颗树,核心思想是权值越大的叶子离根越近。哈夫曼算法的贪心策略是每次从树的集合中取出没有双亲权值最小的两棵树作为左右子树,构造一颗新树新树根节点的权值为其...原创 2019-03-30 18:50:48 · 6121 阅读 · 0 评论 -
一场说走就走的旅行-最短路径
Dijkstra算法:是解决单源最短路径问题的贪心算法,它先求出长度最短路径的一条路径,再参照该最短路劲求出长度次短的一条路径直到求出从源点到其他各个顶点的最短路径。Dijkstra算法得基本思想是首先假定源点为u,顶点集合V被划分为两部分:集合S和V-S。初始时S中仅含有源点u,其中S中的顶点到源点的最短路径已经确定。集合V-S中所含有的顶点到源点的最短路径的长度待定,并且用数组dist[...转载 2019-03-26 22:01:31 · 1802 阅读 · 0 评论 -
合并排序-分治思想
合并排序是采用分策略实现对n个元素进行排序,(1)分解-将代拍序列分解为左右两个序列(2)治理-对两个序列分别进行排序(3)合并-将排好序的序列进行合并,得到最终的有序序列。相比起Quick_Sort(快排)一个是先排序后分解(保证左半边大于右半边),当分解到不能再分解的时候许序列便是有序的而归并排序是先将序列分解为不能再分解子序列,两个两个的合并子序列,并且保证合并完的序列是有序的这样...原创 2019-03-30 22:37:53 · 320 阅读 · 0 评论 -
回溯算法-0-1背包问题
回溯法我在一本书上看到作者用该句作为回溯算法的开头语,我觉的很合适就摘抄过来了。不进则退,不喜则忧,不得则亡,此世人常态。-《邓祈子.无后偏》算法思想:回溯算法是一种从初始状态出发按照深度优先搜索的方法,搜索问题的解,在约束条件的限制下如果,能进就进,不能进就退,退完了看看能不能换,继续深搜。算法要素 :(1)解空间:所有可行解组成的解集。(2)解空间的组织结构:这个如何理解呢,...原创 2019-04-05 14:03:38 · 778 阅读 · 1 评论 -
最小生成树-贪心算法
最小生成树算法和前面学到的dijkstr求最短路径的算法及其相似,最短路径算法-从原点出发-找到一个距离当前最近的结点(则该节点就是原点到该结点的最短距离)- 我们用这条边去跟新和其他结点的最短距离,下次再从剩下的未访问的结点中去选最小值,依次推倒下去每次找到的最小结点都是离原点最短距离。**最小生成树算法-prim **(这里我们采用的是避圈法)-先找到离原点最近距离的结点i,再去找该结点到...原创 2019-04-03 18:04:38 · 4043 阅读 · 0 评论