算法
情到深处无怨尤
这个作者很懒,什么都没留下…
展开
-
生成随机数
#include #include #include #include using namespace std; #define MAX 100000 int main(int argc,char*argv[]) { srand((unsigned)time(NULL));//srand()函数产生一个以当前时间开始的随机种子.应该放在for等循环语原创 2017-04-21 19:02:13 · 151 阅读 · 0 评论 -
最小生成树Prim算法Kruskal算法
Prim算法采用与Dijkstra、Bellamn-Ford算法一样的“蓝白点”思想;白点代表已经进入最小生成树的点,蓝点代表未进入最小生成树的点。 算法分析 & 思想讲解: Prim算法每次都将一个蓝点 U 变成白点,并且此蓝点 U 与白点相连的最小边权还是当前所有蓝点中最小的。这样就相当于向生成树中添加了n-1次最小的边,最后得到的一定是最小生成树。 我们通过对下图最小生成树的求解模原创 2017-04-21 19:02:01 · 210 阅读 · 0 评论 -
并查集
#include #include using namespace std; int Ancestors[1500];//存储祖先节点; int ances(int i)//搜寻祖先节点; { if(Ancestors[i]!=i) Ancestors[i]=ances(Ancestors[i]); return Ancestors[i]原创 2017-04-21 19:01:56 · 163 阅读 · 0 评论 -
tarjan算法和Kosaraju算法
tarjan算法和Kosaraju算法是求有向图的强连通分量的算法; #include #include using namespace std; int map[100][100],nmap[100][100]; int visit[100]; int time1[100]; int post[100]; int n,m,num=0,postid=0; void dfs原创 2017-04-21 19:01:51 · 365 阅读 · 0 评论 -
图的遍历[DFS][BFS]
#include #include #include #include #include using namespace std; int m,n,maxn=0x7fffffff; int s[1500][1500]; bool visit[1500]={false}; queueint>str; void BFS(int ); void DFS(int );原创 2017-04-21 19:01:46 · 194 阅读 · 0 评论