Summary
文章平均质量分 53
iteye_6881
这个作者很懒,什么都没留下…
展开
-
最大连续子序列和
1.起点与终点未知,求整个序列的最大子序列和: int i; maxSum = a[0]; /* 开始循环求子序列和 */ for (i = 0; i < len; i++) { curSum = curSum + a[i]; /* 与最大子序列和比较,更新最大子序列和 */ if (...原创 2013-08-02 17:59:11 · 84 阅读 · 0 评论 -
拓扑排序
拓扑排序 1.概述: 拓扑排序就是将一个“有向无环图G“(左图所示,右图为有环的有向图)中的所有顶点排成一个线性序列,而这个线性序列就叫做是拓扑序列。 更专业的说法就是:由某个集合上的一个偏序得到该集合上的一个全序的操作。 而偏序和全序就是离散数学中的概念: 1.偏序:设A是一个非空集,P是A上的一个关系,若关系P是自反的、反对称的、和传递的,则称P...原创 2013-08-08 23:39:41 · 159 阅读 · 0 评论 -
邻接矩阵和邻接表
邻接表和邻接矩阵 ——图的两种存储结构邻接矩阵用二维数组表示:如下图所示,图中有1指向2,1指向3,3指向4,4指向1共四种情况。故在矩阵中,[1][2],[1][3],[3][4],[4][1]四个位置被标记上了1,而其余为0的地方则表示没有指向关系。注意点:1.由这种标记方式可...原创 2013-08-11 16:36:32 · 1072 阅读 · 0 评论 -
堆(Heap)
堆概念:堆通常是一个可以被看作一棵树的数组对象,一个堆是一个几乎完全的二叉树,将根节点最大的堆叫做最大堆,根节点最小的堆叫做最小堆。堆总是有以下性质:1.堆中某个节点的值总是不大于(最大堆)或不小于(最小堆)其父节点的值;2.堆总是一棵完全树。由以上的定义就可以得知,堆顶元素必为序列中n个元素的最小值或者最大值。 算法思想:不必将值一个个地插入堆中,而是通过...原创 2013-08-11 21:48:08 · 79 阅读 · 0 评论 -
并查集
并查集概念:并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多。一般采取树形结构来存储并查集。在一些应用问题中,我们需要划分n个不同的元素成若干组,每一组的元素构成一个集合。这种问题的一个解决办法是,在开始时,让每个元素自成一个单元素集合,然后按一定顺序将属于同一组的元素所在的集合合并。其间要反复用到查找一个元素在哪一个集合的运算。 常见两...原创 2013-08-15 14:38:28 · 83 阅读 · 0 评论 -
kruskal算法
kruskal算法 求加权连通图的最小生成树的算法。kruskal算法每次选择n- 1条边,所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路则不可能形成一棵生成树。kruskal算法分e 步,其中e 是网络中边的数目。按耗费递增的顺序来考虑这e 条边,每次考虑一条边。当考虑某条边时,若将其加入到已选边的集合中会出...原创 2013-08-19 09:29:23 · 82 阅读 · 0 评论