摘要: 本文实现的Dijkstra算法是最简单的方法,就是暴力搜索,其时间复杂度为O(V^2),后面会使用优先队列的方法,修改广度优先遍历来实现Dijkstra算法,这样的算法时间复杂度上会有所改善。代码实例:/*参考文献:http://baike.baidu.com/view/7839.htm算法流程:在以下说明中,s为源,w[u,v]为点u和v之间的边的长度,结果保存在dist[]1.初始化:源的距离dist[s]设为0,其他的点距离设为无穷大,同时把所有的点的状态设为没有扩展过。2.循环n-1次: 在没有扩展过的点中取一距离最小的点u,并将其状态设为已扩展。 对于每个与u相邻的点v,执行Rel. 阅读全文
posted @ 2011-06-13 21:21 xwdreamer 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 1.Ctrl+A选中要整理的代码2.Ctrl+K3.Ctrl+F 阅读全文
posted @ 2011-06-13 20:19 xwdreamer 阅读(4948) 评论(0) 推荐(0) 编辑
摘要: 1.前言复习算法第四章——图中的路径,首先完成算法广度优先遍历,其中使用到了队列结构2.参考资料http://blog.csdn.net/lengyuhong/archive/2010/01/06/5145100.aspx3.相关博客在之前的博客中完成了图的深度优先遍历,也是使用邻接矩阵表示法。图的深度优先遍历(邻接矩阵表示法)4.代码实现#include<iostream> #include<malloc.h> #include<queue>#include<stdlib.h>using namespace std; #define maxNu 阅读全文
posted @ 2011-06-13 19:01 xwdreamer 阅读(11521) 评论(1) 推荐(0) 编辑
摘要: 发现在平常的编码中,stack和queue用到的频率都非常高,自己写一个stack和queue又显得麻烦,今天特地研究如何使用STL中的stack和queue。研究的并不输入,只是一些简单用法而已。下面附上我的stack和queue使用代码#include<iostream>#include<stack>#include<queue>#include<stdlib.h>//system("pause");需要用到using namespace std;int main(){ stack<int> s; queue& 阅读全文
posted @ 2011-06-13 16:19 xwdreamer 阅读(2480) 评论(0) 推荐(0) 编辑