数据结构
文章平均质量分 92
°PJ想做前端攻城狮
始终相信不能更进一步不是因为困难,而是畏惧困难的自己。所以想做前端攻城狮的PJ正在将键盘敲烂的路上,一直敲
展开
-
《数据结构》之内部排序算法比较
前言各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。基本要求:(1) 从以下常用的内部排序算法至少选取5种进行比较:直接插入排序;折半折入排序;希尔排序;起泡排序;快速排序;简单选择排序;堆排序;归并排序。(2) 待排序表的表长为20000;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字移动次数(关键字交换计为3次移动)。直接上原创 2020-06-29 15:00:16 · 7400 阅读 · 8 评论 -
10分钟学会最小生成树(Prim+Kruskal)
问题引入畅通工程 若要将n个城市之间原有的公路改造为高速公路,这些城市之间原有公路网如右图所示,每条边上的数字表示高速公路的改造成本(单位:10亿元)。如何以最低的成本来构建高速公路网,使得任意两个城市之间都有高速公路相连?算法概述最小生成树 Minimal Spanning Trees (MST) 任何只由图G的边构成,并包含G的所有顶点的树称为G的生成树 加权无向图G的生成树的权重是该生成树的所有边的权重之和 最小生成树是其所有生成树中权重最小的生成树 N个顶点,选取N原创 2020-05-09 09:43:18 · 2911 阅读 · 0 评论 -
10分钟带你学会并查集
引言无所不在的宗教 世界上宗教何其多。假设你对自己学校的同学总共有多少种宗教信仰很感兴趣。已知学校有n个学生,但是建议你不要直接问大家的宗教信仰,这不是一种礼貌的做法。还有另外一个方法是问m对同学,问他们是否信仰同一宗教。根据这些信息,聪明的你如何计算出学校最多有多少种宗教信仰?概述Union-Find Set一种树型数据结构,用于处理一些不相交集合(Disjoint Sets)的...原创 2020-05-08 10:37:36 · 1690 阅读 · 0 评论 -
二叉树及先序遍历二叉树,中序遍历二叉树,后序遍历二叉树
目录定义结点数据类型建立一颗带头结点的二叉树遍历访问函数主代码定义结点数据类型typedef struct bitnode{ char data; struct bitnode *Lchild,*Rchild;} BiTNode,*BiTree;建立一颗带头结点的二叉树BiTree CreatTree(){ BiTree p...原创 2019-06-06 21:42:02 · 3087 阅读 · 0 评论 -
图的存储结构,图的遍历。
目录图的存储方法 邻接矩阵存储法定义存储结构类型建立图的邻接矩阵存储邻接表存储法定义结构类型建立有向图的邻接表存储遍历深度优先搜索DFS广度优先搜索BFS图的存储方法 邻接矩阵存储法定义存储结构类型#define Max 20 ///先定义一个能储存足够大的顶点个数typedef struct{ char ...原创 2019-06-07 18:27:10 · 3620 阅读 · 0 评论 -
树状数组的原理及实现
树状数组 ,顾名思义就是像树一样的数组,当然这里说的是存储方式像树,就像哈希散列表根据哈希函数来储存。具体怎么存呢。定义每一列的顶端结点C[]数组图中C[i]代表 子树的叶子结点的权值之和 //这里以维护区间和为例。C[1]=A[1];C[2]=A[1]+A[2];C[3]=A[3];C[4]=A[1]+A[2]+A[3]+A[4];C[5]=A[5];C[6...原创 2019-08-26 17:05:09 · 2663 阅读 · 0 评论