数据结构
陈朔怡
这个作者很懒,什么都没留下…
展开
-
折半查找(二分查找)的理解
目录折半查找的算法思想查找过程演示折半查找的判定树代码实现折半查找的算法思想折半查找又称二分查找,仅适用于有序的顺序表首先将给定值key与表中中间位置元素的关键字比较,若相等,则返回该元素的位置;若不等,则在前半部分或者是后半部分进行查找。查找序列升序时,若key小于中间元素,则查找前半部分;若key大于中间元素,则查找后半部分。重复该过程,直到找到查找的元素为止,或查找失败。查找过程演示mid = (low + high)/2 向下取整mid = 29,大于16,查前半部原创 2020-08-03 15:16:59 · 2653 阅读 · 0 评论 -
数据结构 - 关键路径
目录一、AOV网介绍二、关键路径事件(点)的最早开始时间事件(点)的最迟开始时间活动(边)的最早开始时间活动(边)的最迟开始时间关键路径三、计算关键路径的例子一、AOV网介绍在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销(如完成活动所需的时间),称之为用边表示活动的网络,简称AOE网。AOE网具有两个性质:只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始。只有在进入某顶点的各有向边所代表的活动都已结束时,该顶点所代表的事件才能发生原创 2020-08-02 11:21:43 · 2095 阅读 · 0 评论 -
求解最短路径-Dijkstra算法
一、最短路径当图是带权图时,把从一个顶点到图中其余任意一个顶点的一条路径(可能不止一条)所经过边上的权值之和,定义为该路径的带权路径长度 。把带权路径长度最短的那条路径称为最短路径。二、Dijkstra算法求最短路径采用Dijkstra算法求下图中从点a到到其他各个顶点的最短路径:步骤顶点集bcdef1a2 , a5 , a∞∞∞2ab3 , b5 , b∞∞3abc5 , b7 , c4 , c4abcf原创 2020-08-01 20:25:55 · 13984 阅读 · 0 评论 -
并查集的学习以及Java代码实现
笔记来源目录并查集简介一、树的双亲表示法二、并查集的初始化 - Initial(S)三、并查集合并 - Union(S,Root1,Root2)四、并查集查找 - Find(S,x)五、代码实现并查集简介并查集是一种简单的集合表示,通常用树(森林)的双亲表示法作为并查集的存储结构,每个子集合以一棵树表示。所有表示子集合的树,构成表示全集合的森林,存放在双亲表示数组内。通常用数组元素的下标代表元素名,用根结点的下标代表子集合名,根结点的双亲结点为负数。并查集有三种操作:并(Union):原创 2020-07-26 19:30:50 · 383 阅读 · 0 评论 -
几种特殊的二叉树 - 满二叉树、完全二叉树、二叉排序树、平衡二叉树
目录一、满二叉树二、完全二叉树三、二叉排序树四、平衡二叉树一、满二叉树定义满二叉树:一棵高度为h,且含有2^h-1个结点的二叉树称为满二叉树。简单来说就是树中的每层都含有最多的结点。特点满二叉树的叶子结点都集中在二叉树的最下一层,并且除叶子结点之外的每个结点度数均为2。(对满二叉树从上到下,从左到右依次编号,如图)对于编号为i的结点:若有双亲,双亲节点编号 = ⌊i/2⌋若有左孩子,左孩子编号 = 2*i若有右孩子,右孩子编号 = 2*i + 1二、完全二叉树定义高原创 2020-07-11 21:46:50 · 1395 阅读 · 0 评论 -
KMP算法的理解
KMP算法本文内容主要来自天勤公开课的KMP算法讲解KMP算法的作用快速从一个主串中找到一段和模式串(字串)相同的串一种简单的模式匹配算法:模式串与主串左端对齐,开始逐个比较:当扫描到某一个位置发现不匹配后,就让模式串后移一位,并且让比较指针回到模式串的第一位,再开始下一轮的比较:这个过程中,比较指针从后面回到前面,称为比较指针的回溯。指针回溯是造成这个简单匹配算法效率比较低的主要原因。但是KMP算法能做到仅让模式串后移,指针不回溯,提高算法的效率。理解KMP算法的原理:如何原创 2020-07-02 16:54:13 · 652 阅读 · 3 评论