
数据结构
文章平均质量分 77
maintain001
事不关己的向前走
展开
-
看完就懂的 Dijkstra 算法介绍
迪杰斯特拉算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短...原创 2020-01-04 16:37:06 · 722 阅读 · 0 评论 -
十大排序算法图解
排序基础知识排序的定义排序, 就是重新排列表中的元素, 使表中的元素满足按关键字递增或递减的过程。为了査找方便,通常要求计算机中的表是按关键字有序的 。 排序的确切定义如下:输 入: n个 记 录 R1,R2,R3…Rn, 对对应的关键字为K1,K2,K3…Kn输出: 输入序列的一个重排R1’,R2’,R3’…Rn’, 使得有K1’ ≤ K2’ ≤ K3’… ≤ Kn’ (其中 ≤可以换成...原创 2019-11-29 14:52:55 · 2621 阅读 · 4 评论 -
树的基本概念
树的概念树(tree)是一种抽象数据类型(ADT)或是可以看作是一种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成的一个具有层次关系的集合。之所以称之为“树”是因为它看起来像一棵倒挂的树,不过这棵树是根朝上,而分支朝下的。树的特点每一个节点有零个或多个子节点没有父节点的节点,称之为根节点每一个非根节点有且仅有一个父节点除了根节点外...原创 2019-08-01 14:36:49 · 470 阅读 · 0 评论 -
十大经典排序算法 排序基础+动态图示
排序基础知识排序的定义排序, 就是重新排列表中的元素, 使表中的元素满足按关键字递增或递减的过程。为了査找方便,通常要求计算机中的表是按关键字有序的 。 排序的确切定义如下:输 入: n个 记 录 R1,R2,R3…Rn, 对对应的关键字为K1,K2,K3…Kn输出: 输入序列的一个重排R1’,R2’,R3’…Rn’, 使得有K1’ ≤ K2’ ≤ K3’… ≤ Kn’ (其中 ≤可以换成...原创 2019-07-25 21:32:40 · 395 阅读 · 0 评论 -
数据结构(线性表)
线性表线性表是具有相同类型的n(n>0)个数据元素的有限序列,其中 n 为表长,当 n = 0 时,线性表是一个空表,若用 L 命名表示线性表,则其一般表示为:L=(a1,a2,a3,...,an)L = (a_1,a_2,a_3,...,a_n)L=(a1,a2,a3,...,an)a1是线性表中唯一的一个没有前驱的元素,又叫表头元素,an 是唯一的一个没有后缀元素的元素,除...原创 2019-07-21 21:15:17 · 501 阅读 · 0 评论 -
二叉树及其遍历
二叉树的定义二叉树是一种特殊的树,它具有以下特点:树中每个节点最多只能有两棵树,即每个节点的度最多为 2,即,二叉树中的结点最多只能有两个孩子节点二叉树的子树有左右之分,即左子树与右子树,次序不能颠倒二叉树即使只有一个子树时,也要区分是左子树还是右子树满二叉树 满二叉树作为一种特殊的二叉树,它是指:所有的分支节点都存在左子树与右子树,并且所有的叶子节点都在同一层上。其特点有: ...转载 2019-08-03 01:51:58 · 186 阅读 · 0 评论 -
简单易懂的 floyd 算法
暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最短路程,也就是求任意两个点之间的最短路径。这个问题这也被称为“多源最短路径”问题。现在需要一个数据结构来存储图的信息,...转载 2019-07-25 14:40:39 · 170 阅读 · 0 评论 -
Dijkstra算法
迪杰斯特拉算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短...转载 2019-07-24 20:05:23 · 161 阅读 · 0 评论 -
数据结构笔记(算法时间复杂度计算)
时间复杂度一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记作 T(n) ,它是算法的问题规模 n 的函数,时间复杂度主要分析 T(n) 的数量级。算法中基本运算(最深层循环内的语句)的频度与 T(n) 同数量级,因此通常采用算法中基本运算的频度 f(n) 来分析算法的时间复杂度。因此,算法的时间复杂度可以记为:T(n)=O(f(n))T(n) = O(f(n))T(...原创 2019-07-18 18:54:38 · 2315 阅读 · 0 评论 -
数据结构笔记(基础知识)
数据结构关注的问题:数据结构的相关概念和术语数据结构的三要素: 逻辑结构,物理结构,数据运算算法复杂度和空间复杂度的分析和计算数据结构的三要素逻辑结构物理结构存储结构数据的运算线性结构--线性表,队列,栈非线性结构--树,图,集合什么是算法?算法是对特定问题求解步骤的一种描述,他是指令的有限集合,其中的每条指令表示一个或多个操作,算法满足:特征{有穷性:一个算法总是在有穷步之后结...原创 2019-07-18 15:43:00 · 237 阅读 · 0 评论