算法
Yagami_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并查集
并查集学习:下面附模板代码 l 并查集:(union-find sets) 一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。 l 并查集的精髓(即它的三种操作,结合实现代码模板进行理解): 1、Make_Set(x)原创 2013-04-14 11:48:53 · 597 阅读 · 0 评论 -
最小生成树(Prim算法)
图解 #include using namespace std ; const int INF=0x3ffffff; int map[128][128]; int used[128]; int dis[128]; void inti() //初始化 { for(int i=0;i { for(int原创 2013-04-14 15:07:53 · 898 阅读 · 0 评论 -
sort快速排序
#include #include //用sort必须加入的头文件 using namespace std ; struct text { int a; int b; }; bool cmp1(int a,int b) { return a>b; } bool cmp2(char a,char b) { return a>b; } bool cmp3(t原创 2013-04-14 15:54:42 · 689 阅读 · 0 评论 -
7种排序
#include #include #include #include #define Max 10000 #define char_len 100 #define Distance 100 int a[Max]={0}; int a2[Max]={0}; int save[Max]; double rt=0.0; //计算排序时间函数 用到了 函数指针, 可原创 2013-04-15 17:19:55 · 777 阅读 · 0 评论 -
拓扑排序
/* 拓扑排序: 对事件优先级的排序 */ #include #include #define Max 10000 using namespace std; vector map[Max]; int used[Max]; int index[Max]; void init(){ memset(used,0,sizeof(us原创 2013-04-15 18:01:28 · 634 阅读 · 0 评论 -
单源最短路径(Dijkstra算法)
//Dijkstra代码解释版本 #include using namespace std; const int maxn=1000+10; const int INF=0x3fffffff; //因为dijkstra会有2个最大值相加的情况,所以用0x7fffffff会溢出 int map[maxn][maxn]; int dis[maxn]; //dis[i]表示原创 2013-04-14 12:02:24 · 796 阅读 · 0 评论 -
线段树
//线段树,节点更新,区间求和 #include using namespace std; const int MAXN = 50000 + 100; //最大区间 struct treeNode { intleft; //左区间 intright; //右区间 intnum; //区间和 }node[MAXN*3]; //节点数原创 2013-04-15 23:18:01 · 725 阅读 · 0 评论 -
HDU 1711 Number Sequence (KMP算法)
#include using namespace std ; int a[1000000+100]; int b[10000+100]; int nextval[10000+100]; void get_nextval(int b[],int nextval[],int m) { int i=1,j=0; nextval[1]=0; while(原创 2013-04-17 17:23:30 · 740 阅读 · 0 评论
分享