- 博客(14)
- 资源 (15)
- 收藏
- 关注
转载 最短路径算法—Bellman-Ford(贝尔曼-福特)算法分析与实现(C/C++)
相关文章: 1.Dijkstra算法: http://www.wutianqi.com/?p=1890 2.Floyd算法: http://www.wutianqi.com/?p=1903 Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用
2017-08-30 19:41:16 378
转载 Dijkstra算法(最短距离)
该算法由荷兰的一个牛人计算机科学家Edsger Wybe Dijkstra在1956年发现。 这套算法主要解决计算从一个点到其它的点的最短距离,而不是Floyd-Warshall算法的任意两点距离。 如图,现要计算出,从1号点到其它各点的最短距离,首先我还是转化成矩阵 由此可见1号点到其它点的初始距离为: 0 1 12 ∞ ∞ ∞ 很明显2号点是离1
2017-08-30 19:30:13 557
转载 Floyd-Warshall算法(最短距离)
Robert W.Floyd和Stephen Warshall在1962年发表了Floyd-Warshall算法 如图,有1234,四个点,每个点都有一定的距离,比如1和2有2的距离,现在我想知道任意两个点的最短距离。 我先用“邻接矩阵存储法”将这个图转化为矩阵 竖坐标是出发点,横坐标是目的地,∞表示无穷大,也就是到不了,例如2到不1。有了这
2017-08-30 19:23:51 452 1
原创 DFS基本模型(啊哈算法)
#include using namespace std; int a[10], book[10], n; void dfs(int step) ///step表示站在第几个盒子前面 { if (step == n + 1) //站在第n+1个盒子前面,表示前n个盒子已经放好位置 { //输出一种排列(1~n号盒子中扑克的编号) for (int i = 1; i <=
2017-08-30 16:55:09 1320
原创 Sales_item.h、Person.h、Screen.h
Sales_item.h #ifndef SALESITEM_H #define SALESITEM_H #include #include class Sales_item { public: Sales_item() = default; Sales_item(const std::string &book) :bookNo(book){} Sales_item(std::ist
2017-08-23 16:17:04 376
原创 检验一个vector对象是否是另一个vector对象的前缀
#include #include using namespace std; int main() { vector v1 = { 0, 1, 1, 2 }; vector v2 = { 0, 1, 1, 2, 3, 5, 8 }; //vector v3 = { 3, 5, 8 }; //vector v4 = { 4, 7, 4, 2, 9, 0 }; auto it1 = v1
2017-08-23 10:05:02 378
原创 字符串拼接
#include #include using namespace std; int main() { char cont = 'y'; string s, result; cout << "请输入第一个字符串:" << endl; while (cin>>s) { if (!result.size()) { result += s; } else {
2017-08-22 20:38:14 247
原创 最大公约数、最小公倍数
#include using namespace std; /*最大公约数*/ int gcd(int a, int b) { int min = 0; if (a <= 0 || b <= 0) return -1; if (a > b) min = b; else min = a; while (min) { if (a%min == 0 && b%min ==
2017-08-06 16:34:51 191
原创 文件的操作(文件的读写、计算文件大小)
#include using namespace std; /*文件的读写*/ int main1() { FILE *fp; char pathName[20], txt1[20] = { '\0' }, txt2[20] = { '\0' }; int fileLen; cout << "输入文件名:"<<endl; cin >> pathName; fp = fopen(pa
2017-08-06 16:09:40 417
原创 快速排序
#include using namespace std; int a[5] = { 1, 4, 2, 5, 3 }; void quickSort(int left, int right) { if (left>right) { return; } int temp = a[left]; int i = left; int j = right; while (i != j)
2017-08-05 16:41:00 231
原创 数据冒险之二叉树(链表实现)
Node.h #ifndef NODE_H #define NODE_H class Node { public: Node(); Node *SearchNode(int nodeIndex); //寻找索引号所在节点,若存在返回该节点,否则返回NULL void DeleteNode(); //删除节点 void PreorderTraverse()
2017-08-04 17:15:11 200
原创 数据冒险之二叉树(数组)
Tree.h #ifndef TREE_H #define TREE_H //数组实现 class Tree { public: Tree(int size, int *pRoot); //创建树 ~Tree(); //销毁树 i
2017-08-04 15:30:50 184
原创 数据冒险之单链表(简易通信录)
Node和LIst的定义与实现基本不改变,上篇已经详细给出,这里仅仅将部分改变的内容粘贴出来,要想完整实现通信录还需要把Node.h、Node.cpp、List.h、List.cpp补充完整,也可发挥自己创造实现一些新的东西。 Node.h 这里只是数据类型发生了变化 #ifndef NODE_H #define NODE_H #include"Person.h" class Node {
2017-08-03 11:29:10 286
MySQL入门很简单
2018-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人