感觉《算法导论》上面的那个例子要更容易理解,因为那个最起码比较直观!
#include
int a[10]={2,8,5,7,4,3,1,9,6,10};
void QuickSort(int m, int n)
{
int s,begin,end;
if(m>n)
return;
begin=m;
end=n;
s...
分类:
编程语言 时间:
2015-05-26 12:40:15
阅读次数:
114
package org.loda.graph;
import org.loda.structure.MinQ;
import org.loda.structure.Queue;
import org.loda.util.In;
/**
*
* @ClassName: KruskalMST
* @Description:Kruskal最小生成树算法
* @author...
分类:
编程语言 时间:
2015-05-26 06:54:36
阅读次数:
168
栈 1 Stack-EMPTY(S) 2 if top[S]=0 3 then return TRUE 4 else return FALSE 5 6 PUSH(S,x) 7 top[S]←top[S]+1 8 S[top[S]]←x 9 10 POP(S)11 if STACK-...
分类:
编程语言 时间:
2015-05-25 22:18:47
阅读次数:
148
package org.loda.graph;
import org.loda.util.In;
/**
*
* @ClassName: KosarajuSCC
* @Description: Kosaraju强连通算法
*
* 理解:原图g,逆后序order中如果a->b,那么反向图rg中如果也有a->b,表示这是...
分类:
编程语言 时间:
2015-05-25 01:03:13
阅读次数:
251
package org.loda.graph;
import org.loda.structure.Stack;
import org.loda.util.In;
/**
*
* @ClassName: Topological
* @Description: 拓扑排序是所有节点dfs的逆后序,也就是每个节点任务完成的时间的逆...
分类:
编程语言 时间:
2015-05-24 20:28:47
阅读次数:
161
任意一种比较排序算法,在最坏情况下的运行时间下限是Ω(nlgn)计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,k为某个整数,当k=O(n)时,计数排序的运行时间为Θ(n) 1 //输入数组A[1..n],存放排序结果数组B[1..n],临时存储区C[0..k] 2 COUNTING-S...
分类:
编程语言 时间:
2015-05-24 17:18:52
阅读次数:
135
快速排序 1 QUICKSORT(A,p,r) 2 if p<r 3 then q←PARTITION(A,p,r) 4 QUICKSORT(A,p,q-1) 5 QUICKSORT(A,q+1,r) 6 7 PARTITION(A,p,r) 8 x←A[r...
分类:
编程语言 时间:
2015-05-24 16:58:40
阅读次数:
185
package org.loda.graph;
import org.loda.structure.Stack;
/**
*
* @ClassName: DFS
* @Description: 深度优先搜索(无向图)
* @author minjun
* @date 2015年5月24日 上午4:02:24
*
*/
public class...
分类:
编程语言 时间:
2015-05-24 08:59:08
阅读次数:
176
BigMoyan准备做一个连续的文章,以算法导论为蓝本,尽量用亲切生动的语言把一些经典的算法讲清楚,欢迎来捧场~ 本人并非计算机专业学生,文章有疏漏错误之处,还望专家们指正,在此谢过---------------------------------------------------------.....
分类:
编程语言 时间:
2015-05-22 11:20:29
阅读次数:
123
博文“二分图的最大匹配、完美匹配和匈牙利算法”对二分图相关的几个概念讲的特别形象,特别容易理解。本文介绍部分主要摘自此博文。 还有其他可参考博文: 趣写算法系列之--匈牙利算法 用于二分图匹配的匈牙利算法 1. 前言 二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的...
分类:
编程语言 时间:
2015-05-20 23:49:41
阅读次数:
293