- 博客(12)
- 资源 (5)
- 收藏
- 关注
转载 C中 malloc()分配堆内存实际的大小
转载自:http://blog.csdn.net/misskissc/article/details/17717717C动态分配的实际大小1堆内存Figure1:内存中的堆内存空间假设从《The C Programming Language》中推测正确,从未经动态分配的堆内存呈现上图形式。不连续的堆内存以“链”的形式联系:Heap1 -> He
2016-01-19 19:34:22 1757 1
原创 Kosaraju算法查找有向图的强连通分支
部分转载自:http://www.tuicool.com/articles/uQBz2y1.相关概念给定一个有向图 G = (V, E),对于任意一对顶点 u 和 v,有 u --> v 和 v --> u,亦即,顶点 u 和 v 是互相可达的,则说明该图 G 是强连通的(Strongly Connected)。如下图中,任意两个顶点都是互相可达的。对于无向图,判断
2016-01-11 14:29:11 2095
原创 拓扑排序详解以及java实现
1. 相关概念介绍拓扑排序是对有向无圈图顶点的一种排序,使得存在一条vi到vj的边,那么在排序中vi出现在vj的前面。2. 算法分析如果要对点进行拓扑排序,我们首先可以找到入度为0的点,删除,并且更新其指向节点的入度。在这里找到入度为零的点,可以采用循环搜索,复杂度为o(V^2),或者是采用优先级队列,把入度为0的点加入队列,依次取出添加,然后复杂度为0(E+V).3. jav
2016-01-10 00:21:11 2375
原创 求无向连通图的最小割点详解以及java源代码实现
部分内容转载自http://www.cnblogs.com/en-heng/p/4002658.html点击打开链接1.相关概念无向连通图:无向图是连通的,当且仅当从任意节点开始的深度优先搜索将会遍历到每一个节点。双连通图:一个无向连通图,如果不存在删除后就使得剩下的图不再连通的节点,那么这样的无向连通图就是双连通的。割点:如果一个图不是双连通的,那么将其删除使图不再连通的节点称为
2016-01-09 17:22:26 3158
原创 Kruskal最小生成树算法详解,以及java源代码
1.算法详解Kruskal算法类似于Prim算法,不过Prim算法以点为单位,Kruskal主要考虑边,Kruskal算法的思想是将边排序,之后根据依次出列,如果边上的两点不在一棵树上,我们就可以将这两棵树合并成一棵树,算法思路比Prim算法更加清晰。2. java源代码import java.util.Arrays;import java.util.*;public clas
2016-01-07 09:55:10 2175 1
原创 Prim最小生成树算法详解以及java实现源代码
1.Prim算法核心思想prim算法也是贪婪算法的一个典型例子,有点类似于dijkstra算法。核心思想:将点分为两拨,已经加入最小生成树的,未加入的,找到未加入中距离集合最近的点,添加该点,修改其它点到集合的距离,直到所有结点都加入到最小生成树。2.典型例子使用prim算法的过程:3.java源代码import java.util.*;public clas
2016-01-06 18:41:24 11792 2
原创 网络流-最大流 EdmondKarp算法 详细讲解 以及java实现源代码
部分内容转载自:http://www.cnblogs.com/zsboy/archive/2013/01/27/2878810.html 点击打开链接最大流的含义,就是说从源点到经过的所有路径的最终到达汇点的所有流量和。1. EK算法的核心:反复寻找源点s到汇点t之间的增广路径(路径上的最小边值就是可以用过路径的最大流量),每找到一条路径,我们正向减去对应边的流量,并且反向增加流量
2016-01-06 14:24:58 3357
原创 邻接矩阵的dijkstra算法 迭代法以及使用PriorityQueue的java实现
import java.util.PriorityQueue;public class DijkstraMy { //设置最大值 int MAX=999; //顶点总个数 int total; //邻接矩阵表示距离 int[][] matrix; //结点相关信息 String[] nodes;
2016-01-05 21:30:48 1890
原创 dijkstra算法的java实现
算法思想: 贪婪算法的一个例子。主要是找到该阶段的一个最优解。首先把结点分为两拨,open(未计算出最小路径的结点),close(已经计算出最小路径的结点)。每次我们都从start结点的子节点中找到一个最短的结点nearest加入,然后更新其未被加入的子节点的距离信息,递归的继续加入,直到start子节点的所有结点都被加入,然后以nearest为节点继续查找,直到所有结点都被加入。算法复杂度为o(
2016-01-05 11:12:26 890
原创 leetcode 214:Shortest Palindrome 题目分析 与使用KMP算法的java实现
Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. Find and return the shortest palindrome you can find by performing this transformation.For exam
2016-01-04 11:21:55 1651 1
原创 leetcode 5:Longest Palindromic Substring 三种解法的java实现源代码,以及详细讲解
题目分析:查找一个字符串中中最长回文字符串1.算法1:暴力检索 既然要查最长的回文字符串,那么直接对每一个字符,以它为中心,找到最长的回文字符串,更新最大值最小值就行了。注意要分两种情况,1/**对每一个字母,都查找最大的回文串的长度,left,right分别表示回文串的起始位置*/ public String longestPalindrome(String s) { int
2016-01-02 23:51:35 1606
转载 【经典算法】——KMP,深入讲解next数组的求解
转载自:http://www.cnblogs.com/c-cloud/p/3224788.html1.算法原理字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到Jake Boxer的文章,我才真正
2016-01-01 15:59:56 572
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人