算法
八点博客(钏)
专注分享技术交流
展开
-
数据结构与算法(一): 树的高度和深度的区别
1.高度对于高度的理解,我们不管他数据结构什么什么知识,就拿楼房来说,假如一个人提问:楼房的高度有好高?我们会下意识的从底层开始往上数,假如楼有6层,则我们会说,这个楼有6层楼那么高,则提问者就会大概知道楼有多高了。所以高度就是以从下往上对比,这是我们的习惯。而在树中,树的高度也是从下往上数,如图所示K节点在树的底层,是一个叶子节点,则一般定义为K的高度在最低为1,以此类推,O的高度也是为1,P的节转载 2017-08-09 21:08:07 · 6637 阅读 · 2 评论 -
时间复杂度和空间复杂度详解
算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或原创 2017-09-15 22:50:38 · 268 阅读 · 0 评论 -
有向图的邻接表转逆邻接表的算法
#include <iostream>using namespace std;typedef struct ArcNode{ int adjvex; int weight; ArcNode *next;}ArcNode;typedef struct VertexNode{ int vertex; ArcNode *firstarc;}VertexNode,Adj...原创 2019-10-09 07:38:05 · 6167 阅读 · 0 评论 -
邻接矩阵转邻接表
#include <iostream>using namespace std;const int inf = 99999999;int arr[100][100];typedef struct ArcNode{ int adjvex; int weight; ArcNode *next;}ArcNode;typedef struct VertexNode{ ...原创 2019-10-09 07:41:55 · 194 阅读 · 0 评论 -
邻接表转邻接矩阵
#include <iostream>using namespace std;const int inf = 99999999;int arr[100][100];typedef struct ArcNode{ int adjvex; int weight; ArcNode *next;}ArcNode;typedef struct VertexNode{ ...原创 2019-10-09 07:43:24 · 442 阅读 · 0 评论 -
并查集
#include <iostream>#include <vector>using namespace std;int main(){ vector <int> father; father.resize(5); int findFather(int x){ int a = x; while(x != father[x]){ ...原创 2019-10-09 07:46:19 · 101 阅读 · 0 评论