快乐江湖
专注人工智能领域和优质计算机学习笔记创作
展开
-
【专栏必读】王道考研408数据结构+计算机算法设计与分析万字笔记、题目题型总结、注意事项、目录导航和思维导图
各位老铁思维导图在我整理完笔记后会放上去的,我需要根据王道的思维导图重新再做一遍文章目录一:有关注意事项二:关于专栏三:学习建议四:各专栏导航(各位老铁别催,质量优先)(1)第一章:绪论(2)第二章:线性表(3)第三章:栈和队列第四章:串第五章:二叉树第六章:图首先感谢王道大大(手动比心),很用心在做了,大家可以看其中两节是否符合胃口(王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)(王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转一:有.原创 2021-11-23 20:25:03 · 42260 阅读 · 23 评论 -
(算法设计与分析)第七章随机化算法概述
随机化算法:随机化算法把“对于所有合理的输入都必须给出正确的输出”这一求解问题的条件放宽,将随机性选择注入到算法中,在算法执行某些步骤时,可以随机地选择下一步该如何进行,同时允许结果是近似解或以较小概率出现错误,并以此为代价,获得算法运行时间的大幅度减少。随机化算法执行中注入的随机性依赖于随机数发生器所产生的随机数拉斯维加斯算法:舍伍德型算法的优点是,其计算时间复杂性对所有实例而言相对均匀,但与其相应的确定性算法相比,其平均时间复杂性没有改进。拉斯维加斯算法则不然,它能显著地改进算法的有效性。原创 2022-12-11 16:23:34 · 705 阅读 · 0 评论 -
(算法设计与分析)第四章贪心算法-第一节:贪心算法概述
贪心算法概述:贪心算法可以认为是动态规划算法的一个特例,该算法需要满足的条件(贪心选择性质)要多余动态规划,但效率要比动态规划高。所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择(贪心选择)得到,当然这个问题只对部分问题成立例如:你面前摆放着100张人民币,要求你只能拿十张,才能拿到最多的面额。显然,每次选择剩下钞票中面值最大的一张,最后选择一定是最优的但现实中大部分问题不具有贪心选择性质。原创 2022-12-02 19:17:48 · 1771 阅读 · 3 评论 -
(算法设计与分析)第三章动态规划-第二节:动态规划之背包类型问题
为所有物品的总质量,假设有一个背包,其容量范围在。1:牛客-求正数数组的最小不可组成和。假设每一种面额的硬币有无限个。,现在让你用这个背包装物品,③:根据选择,思考转移的逻辑。,现在让你用这个背包装物品,③:根据选择,思考转移的逻辑。③:根据选择,思考转移的逻辑。①:考虑状态和选择是什么。①:考虑状态和选择是什么。①:考虑状态和选择是什么。件不同重量的物品、、、原创 2022-11-15 20:36:04 · 519 阅读 · 0 评论 -
(算法设计与分析)第三章动态规划-第一节3:动态规划之使用“找零钱”问题说明最优子结构如何解决
最优子结构:最优子结构是某些问题的一种特定性质,并不是动态规划问题专有的。也就是说,很多问题其实都具有最优子结构,只是其中大部分不具有重叠子问题,所以我们不把它们归为动态规划系列问题而已举一个简单的例子:假设你们学校有 10 个班,你已经计算出了每个班的最高考试成绩。那么现在我要求你计算全校最高的成绩,你会不会算?当然会,而且你不用重新遍历全校学生的分数进行比较,而是只要在这 10 个最高成绩中取最大的就是全校的最高成绩可以从子问题的最优结果推出更大规模问题的最优结果。原创 2022-11-11 20:25:28 · 567 阅读 · 0 评论 -
(算法设计与分析)第三章动态规划-第一节2:动态规划之使用“斐波那契数列”问题说明重叠子问题如何解决
重叠子问题原创 2022-11-10 15:56:28 · 406 阅读 · 0 评论 -
(算法设计与分析)第三章动态规划-第一节1:动态规划基本思想、框架
注意:更多最优化问题及理论内容可了解专栏最优化理论与方法最优化问题:有nnn个输入,问题解由nnn个输入的一个子集组成,这个子集必须满足某些事先给定的条件,这些条件称为约束条件满足约束条件的解称为问题的可行解(不唯一)使目标函数取得极值的可行解称之为最优解这类问题就称之为最优化问题。原创 2022-11-09 16:03:03 · 616 阅读 · 0 评论 -
(算法设计与分析)第二章递归与分治策略-第二节:分治和典型分治问题
当矩阵的阶大于2时,为求2个子矩阵的积,可以继续将子矩阵分块,直到子矩阵阶将为2,由此才产生了分治将阶和递归的算法。这里我们以4×4棋盘为例,如下图是16种特殊棋盘中的4种,白色字体是特殊方格的坐标,红色方格是划分为2×2个棋盘后每个棋盘左上角的坐标。如下,划分至2×2时(再次划分为1×1时会直接返回),判断特殊方格位置后,填充剩余方格即可。,这个时候区间中还有有一个数字,还没有被检索,如果这个时候返回-1,很明显就是错误的。这样一来,特殊方格必然位于这4个棋盘中的某一个,其余三个为非特殊棋盘。原创 2022-10-26 16:39:34 · 1250 阅读 · 1 评论 -
(算法设计与分析)第二章递归与分治策略-第一节:递归和典型递归问题
递归与分治:任何可以用计算机求解的问题所需要的计算时间都和其规模有关,如果问题的规模越小,解题所需的计算时间往往也越短,从而也比较容易处理,例如对于nnn个元素的排序问题:当n=1n=1n=1时不需要任何计算;当n=2n=2n=2时,只需要做一次比较即可排好序;当n=3n=3n=3时则两次。而当nnn较大时,这个问题就不好处理了所以要想直接解决一个较大的问题,有时是相当有困难的。将一个难以直接解决的大问题分割成一些规模较小的相同问题,以便各个击破,也即分而治之。原创 2022-10-23 15:55:40 · 501 阅读 · 1 评论 -
(算法设计与分析)第一章算法概述-习题
我们以列变换优先,每一列都可作为第一列,然后再进行第一列与目标列进行比较,如果不相同,则进行行翻转,此后,第一列将固定下来;用后一个抽屉的小值减去上一个抽屉的大值,得到抽屉之间的间隙,最后取出最大的那个间隙(前提:易知最大间隙一定大于等于n个元素的平均距离,所以抽屉内的元素间隙一定不是最大间隙,最大间隙只能在抽屉间)根据数组中n个元素的相对大小,将他们放在这n-1个抽屉中,可能有的抽屉中为空值,可能有的抽屉中含有多个元素,并记录每一个抽屉的小值和大值。找出数组中的最小值和最大值。,都是常数阶,区别在于。原创 2022-10-18 19:24:05 · 597 阅读 · 0 评论 -
(算法设计与分析)第一章算法概述-第二节:NP完全性理论
有效的多项式时间复杂度算法,目前倾向于接受这类问题是。不能证明这类问题的任何一个不存在多项式时间的确定算法。不可解问题(Unsoluable Problem),不存在有效多项式算法这一猜想。不知道该问题是否存在多项式时间的确定算法。NP类问题(P-Polynomial)易解问题(East Problem)难解问题(Hard Problem)P类问题(P-Polynomial)所有的P类问题都是NP问题。非确定性多项式问题内求解。NP完全(NPC)问题。原创 2022-10-14 15:59:40 · 578 阅读 · 0 评论 -
(算法设计与分析)第一章算法概述-第一节:算法基本概念和算法复杂性分析
算法(Algorithm):算法是计算机解决问题的方法,是计算机解决某一特定问题的一组有序的指令序列,是计算机完成一个任务所需要的具体步骤和方法。原创 2022-10-05 16:28:34 · 943 阅读 · 0 评论 -
(王道408考研数据结构)第五章树-第三节5:C、C++和Java实现二叉树
注意:本文实现设计如下二叉树基本操作原创 2022-10-03 16:35:34 · 505 阅读 · 0 评论 -
(王道408考研数据结构)第三章栈和队列-第五节:Java、C++、Python实现栈和队列
【代码】(王道408考研数据结构)第三章栈和队列-第五节:Java、C++、Python实现栈和队列。原创 2022-09-29 20:29:24 · 948 阅读 · 0 评论 -
(王道408考研数据结构)第二章线性表-第三节6:Java、C++、Python实现链表
【代码】(王道408考研数据结构)第二章线性表-第三节6:Java、C++、Python实现链表。原创 2022-09-24 20:48:48 · 938 阅读 · 0 评论 -
(王道408考研数据结构)第二章线性表-第二节3:Java、C++、Python实现顺序表
这是一个自定义异常,用于抛出位置越界。将在此处实例化并测试。原创 2022-09-15 08:58:22 · 750 阅读 · 0 评论 -
【C语言笔记进阶篇】第二章:字符串函数和内存函数
目录(1)分类(2)字符串函数A:strlen(求字符串长度)B:strcpy(字符串复制_不受限制)C:strcat(字符串追加_不受限制)D:strcmp(字符串比较_不受限制)E:strncmp(字符串复制_受限制)F:strncat(字符串追加_受限制)G:strncmp(字符串比较_受限制)H:strstr(查找字符串)I:strtok(字符串切割)J:strerror(3)字符函数A:字符分类函数B:字符转换函数(常用的转大写和转小写)原创 2021-12-06 16:46:33 · 1070 阅读 · 0 评论 -
【C语言笔记进阶篇】第一章:指针进阶
目录(1)字符指针(2)指针数组A:什么是指针数组B:指针数组的用法(3)数组指针A:什么是数组指针B:数组指针的用法C:关于指针和数组的再总结(4)数组参数,指针参数A:一维数组传参B:二维数组传参C:一级指针传参D:二级指针传参(5)函数指针A:什么是函数指针B:函数指针及其使用(6)函数指针数组A:什么是函数指针数组B:函数指针数组C:函数指针数组的用途(7)指向函数指针数组的指针(8)回调函数A:引言原创 2021-12-06 16:30:05 · 7569 阅读 · 2 评论 -
【C语言笔记初级篇】第八章:简单调试
目录(1)Debug和ReleaseA:什么是Debug和Release(2)Windows下的调试A:调试时,确保是DebugB:使用快捷键进行调试C:在调试时查看信息(1)Debug和ReleaseA:什么是Debug和Release第一:DebugDebug:通常称为调试版本,它包含着调试信息,没有做优化。所生产的可执行文件相较于Release版本也较大使用Debug,就会在工程下生成一个Debug文件夹,里面就存着刚才生成的可执行文件第..原创 2021-12-05 18:52:09 · 590 阅读 · 0 评论 -
【C语言笔记初级篇】第七章:结构体相关
目录(1)结构体的声明,定义,初始化和成员访问A:什么是结构体B:结构体声明和定义C:结构体的初始化D:成员访问(2)结构体传参(3)结构体自引用(4)内存对齐(5)结构体传参(6)位段(1)结构体的声明,定义,初始化和成员访问A:什么是结构体世界上物体的性质是复杂多样的,就拿人而言,人绝对不能用一个整形数据(比如说身高),或者说字符串(比如说姓名)而单独囊括的,于是我们在描述一个复杂对象的时候,就要使用的结构体,结构体是一些值的集合,这些值称为成员变原创 2021-12-05 18:46:01 · 787 阅读 · 0 评论 -
【C语言笔记初级篇】第六章:指针入门
目录(1)指针是什么(2)指针和指针类型A:指针类型B:指针类型的意义(3)野指针A:什么是野指针B:野指针的起因C:如何避免野指针(4)指针运算A:指针+-整数B:指针-指针C:指针的关系运算(5)指针与数组(6)二级指针(1)指针是什么第一:官方定义在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向 (points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地原创 2021-12-05 18:34:21 · 1307 阅读 · 0 评论 -
【C语言笔记初级篇】第五章:操作符
目录(1)算数操作符(2)移位操作符A:左移B:右移(3)位操作符(4)赋值操作符(5)单目操作符(6)关系操作符(7)逻辑操作符(8)条件操作符(三目运算符)(9)逗号表达式(10)下标引用,函数调用和结构成员A:下标引用操作符B:函数调用操作符C:结构体成员(11)表达式求值A:隐式类型转换B:算数转换C:操作符的属性(1)算数操作符第一点:基本介绍算数操作符包括以下几种第二点:注意事项1:除了“.原创 2021-12-04 15:59:01 · 724 阅读 · 0 评论 -
【C语言笔记初级篇】第四章:数组入门
(1)一维数组A:数组的创建B:数组初始化第一点:各种各样的初始化方式以下是经常使用到的几种初始化方式第二点:需要注意的地方其中需要注意对于不完全初始化,int数组,没有被初始化的元素为0还有字符数组有两种写法,这两种写法内存分配是不同的,尤其配合sizeof和strlen两个函数可以鲜明的反映出来C:一维数组的使用第一点:数组通过“[ ]”操作符来引用,也就是用下标访问,从0开始第二点:数组的大小可以通过计算得到...原创 2021-12-04 15:41:10 · 1137 阅读 · 1 评论 -
【C语言笔记初级篇】第三章:函数与递归
第三章:函数(1)函数是什么在计算机科学中,子程序是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。C语言中的函数分为库函数和自定义函数。(2)库函数A:什么是库函数我们知道,在学习C语言时,为了检验成果,我们总是会利用的“printf”这样一个函数将结果打印到屏幕上,其实在C语言刚刚出现时,要想实现屏幕打印效果,是要自己定义一个打印函数原创 2021-12-03 15:53:33 · 890 阅读 · 0 评论 -
【C语言笔记初级篇】第二章:分支与循环
A:if语句第一点:if语句的基本结构第一:单分支第二:双分支第三:多分支第二点:关于if语句的其他补充第一:悬空ifelse在匹配if时,匹配的是离它最近的if,所以下面的代码中,在阅读上感觉要输出“haha”,但是实际什么都不输出,因为下面的else是和内层的if匹配,它连第一个判断都没有进去所以代码风格一定要清晰,不能人为的产生歧义第二:请再不要把赋值运算符和比较运算符搞混了所以为了防止这样的低级错误,可以反着写if...原创 2021-12-03 15:35:11 · 1122 阅读 · 1 评论 -
【C语言笔记初级篇】第一章:C语言快速入门及注意事项
(1)第一个C语言程序A:利用vs2010写C语言程序1:按以下步骤新建工程2:添加源文件,“.c”文件B:第一个C语言代码1:以下是基本的C语言程序2:由于没有设置连接器,所以打印结果没有显示,按照如下步骤链接控制台(2)数据类型A:基本数据类型及占用字节B:一些概念的梳理概念一:关于计算机的单位位(bit):计算机通过电路的开关和闭合处理信息,电路通...原创 2021-12-03 15:16:32 · 2395 阅读 · 2 评论 -
(王道408考研数据结构)第八章排序-第四节1:冒泡排序
回到总目录:点击跳转(1)基本思想冒泡排序属于交换类排序,简单点来说**,每趟排序不断比较相邻元素的大小然后进行交换**,这样如果按升序排序,那么最大的元素一定就会交换到最后面,次大的元素会交换到倒数第二位,依次类推。(2)代码1:完整排序可以发现,当完成一趟排序之后,无序序列的元素就少了一位,那么需要排序的元素的位数也就少了一位。所以定义一个变量end,它表示每趟排序指向此时无序序列的最后一个元素,然后对其进行排序,一趟结束之后,无序元素少一位,end向前移动,直到end=0时,表示排序.原创 2021-12-01 22:43:28 · 1356 阅读 · 0 评论 -
(王道408考研数据结构)第八章排序-第三节1:简单选择排序
回到总目录:点击跳转文章目录(1)基本思想(2)代码(3)动态演示(4)分析(1)基本思想和简单插入排序有所区别。直接选择排序默认认为整个序列是无序的,每次从这个无序序列中选出一个最小(或最大)的元素放到这个无序序列的首位。放在首位的元素,就被划分为了有序序列,然后无序序列的个数自然少一个了,然后重复上述过程(2)代码1:单趟排序单趟排序的过程如下2:完整排序所以从上面可以看出,每趟排序结束后,无序序列就缩小了,等价于上图中的begin不断增大,所以完整代码如下(3)动态演示.原创 2021-12-01 22:43:06 · 1129 阅读 · 0 评论 -
(王道408考研数据结构)第八章排序-第二节:直接插入排序和希尔排序
回到总目录:点击跳转文章目录一:简单插入排序(1)基本思想(2)代码(3)动态演示(4)分析二:希尔排序(1)基本思想(2)代码(3)动态演示(4)分析一:简单插入排序(1)基本思想简单来说:简单插入排序将整个序列分为有序和无序两组,开始时默认第一个数字就是有序序列,接着挑选无序序列中的第一个数字,与有序序列数字(从后向前)挨个比较,如果小于继续比较前一个,直到某一时刻大于有序序列中的某个数字时,将将其插入在后面,然后扫描下一个无序序列中的数字。(2)代码排序数组为:int a[] = {.原创 2021-12-01 22:42:49 · 2107 阅读 · 5 评论 -
(王道408考研数据结构)第七章查找-第四节:哈希表(基本概念及其操作)
文章目录一:哈希表基本概念(1)哈希表(2)建立一个简单的哈希表(快速入门以及相关术语)(3)ASL计算二:常见哈希函数(1)直接定址法(常考)_{(常考)}(常考)(2)除留余数法(常考)_{(常考)}(常考)(3)平方取中法(了解)_{(了解)}(了解)(4)数字分析法(了解)_{(了解)}(了解)(5)折叠法(了解)_{(了解)}(了解)(6)随机数法(了解)_{(了解)}(了解)三:解决Hash冲突(1)闭散列(开放定址法)A:线性探测法B:二次探测法(2)开散列(链地址法)一:哈希表原创 2021-12-01 21:50:39 · 2284 阅读 · 5 评论 -
(王道408考研数据结构)第七章查找-第三节:B树(基本概念及其操作)
文章目录一:B树的基本概念(1)B树(2)B树(假设mmm阶)特点及效率二:B树操作(1)插入(2)查找(3)删除一:B树的基本概念(1)B树B树(B-tree):是一种平衡的多路查找树,结点最大的孩子数目称之为B树的阶(order)。和二叉排序树一样,每个结点把查找范围分为了两个区间,小于它的在左侧,大于它的在右侧如下是一个5阶B树定义如下struct Node{ DataType keys[4];//最多4个关键字 struct Node* child[5];//最多5个孩子 in原创 2021-11-30 22:35:55 · 1833 阅读 · 3 评论 -
(王道408考研数据结构)第七章查找-第二节3:分块查找
文章目录一:分块查找基本思想二:注意问题三:效率分析一:分块查找基本思想分块查找:我们可以对数据集进行分块,使其分块有序,然后再对每一块建立一个索引项。分块有序具体是指块内无序: 也即块内的记录不要求有序块间有序: 要求第n+1n+1n+1块中所有记录的关键字均大于第nnn块中所有记录的关键字其中,每一块将对应一个索引表,它保存了每个分块的最大关键字和存储区间定义如下typedef struct{ DataType maxValue; int low,high;}Index;//原创 2021-11-30 21:03:28 · 1029 阅读 · 1 评论 -
(王道408考研数据结构)第七章查找-第二节2:二分查找及其判定树
文章目录一:二分查找法基本思想二:二分查找法代码三:二分查找法效率分析三:二分查找判定树的构造(1)规律(2)构造(3)特点(4)时间复杂度一:二分查找法基本思想二分查找法(Binary Search):又称之为折半查找,针对有序顺序表。具体来讲:在有序表中,取中间记录作为比较对象,共有下面几种情况若给定值与中间记录的关键字相等,则查找成功若给定值小于与中间记录的关键字,则在中间记录左半区继续查找若给定值大于与中间记录的关键字,则在中间记录右半区继续查找不断重复上述过程,直至成功;或无此记录原创 2021-11-28 23:12:29 · 1572 阅读 · 6 评论 -
(王道408考研数据结构)第七章查找-第二节1:顺序查找及其优化
文章目录一:顺序查找基本思想二:效率分析三:顺序查找优化(针对查找表为有序表)四:顺序查找优化(针对查找概率不相等)一:顺序查找基本思想顺序查找(Sequential Search):又叫做线性查找。从表中第一个或最后一个记录开始,逐个进行比较:若某个记录的关键字和给定值相等则查找成功;若直到最后一次查找时,关键字和给定值都没有相等,则表示查找不成功如果采用顺序表实现顺序查找,那么代码如下typedef struct Sequence_table{ int* arr; int len;}Se原创 2021-11-28 21:55:05 · 1131 阅读 · 0 评论 -
(王道408考研数据结构)第七章查找-第一节:查找的基本概念、平均查找长度
文章目录一:查找的基本概念(1)查找表和关键字(2)查找的概念二:静态查找表和动态查找表三:查找算法评价指标——平均查找长度一:查找的基本概念(1)查找表和关键字查找表(Search Table):是由同一类型的数据元素(记录)构成的集合关键字(Key):是数据元素中某个数据项的值,又称之为键值。同他可以标识一个数据元素主关键字(Primary Key): 可以唯一地标识一个记录(比如身份证号码)次关键字(Secondary Key): 可以识别多个数据元素的关键字(比如微信昵称)(2)查原创 2021-11-28 21:06:11 · 1201 阅读 · 1 评论 -
(王道408考研数据结构)第六章图-第四节7:关键路径(最早发生时间、最迟发生时间)
文章目录一:关键路径基本概念(1)AOE网(2)AOV网和AOE网的对比(3)关键路径二:手动求解关键路径(1)每个事件(即顶点)的最早发生时间和最迟发生时间(2)每个活动(即边)的最早发生时间和最迟发生时间(3)关键活动和关键路径一:关键路径基本概念(1)AOE网AOE网(Activity On Edge Network):在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示和活动,用边上的权值表示活动的持续时间。其中没有入边的顶点称之为源点,没有出边的点称之为终点如下图就是一个AOE网,其原创 2021-11-27 23:04:28 · 2536 阅读 · 1 评论 -
(王道408考研数据结构)第六章图-第四节6:拓扑排序(AOV网、代码、排序规则)
文章目录一:拓扑排序基本概念(1)AOV网(2)拓扑序列二:拓扑排序(1)拓扑排序(2)拓扑排序规则三:拓扑排序代码实现(1)准备工作(2)代码(3)代码分析一:拓扑排序基本概念(1)AOV网AOV网(Activity On Vertex network):如果从英文角度理解就是活动在边上的网。它是一种以顶点表示活动,以边表示活动的先后次序且没有回路的有向图比如下图是一个电影制作的流程图,其中某些活动的发生会受到其他活动是否发生或完成的限制,比如在拍摄时,不可能也不能出现连场地、演员都没有的现象原创 2021-11-27 21:51:44 · 1847 阅读 · 2 评论 -
(王道408考研数据结构)第六章图-第四节5:最短路径之弗洛伊德算法(思想、代码、演示、答题规范)
文章目录一:动态规划基本思想二:弗洛伊德(Floyd)算法基本思想三:弗洛伊德(Floyd)算法代码实现四:弗洛伊德(Floyd)算法代码视频演示五:弗洛伊德(Floyd)算法代码答题规范最短路径shortestpath):主要有以下两类最短路径问题单源最短路径问题:一个顶点到其他顶点最短路径迪杰斯特拉算法(dijkstra)(带权图、无权图)-点击跳转BFS算法(无权图)–点击跳转各顶点间最短路径问题:也即每一对顶点间最短路径弗洛伊德算法-本节讲解最短路径在通信、交通等领域有重要应用原创 2021-11-26 22:15:03 · 1641 阅读 · 4 评论 -
(王道408考研数据结构)第六章图-第四节4:最短路径之迪杰斯特拉算法(思想、代码、演示、答题规范)
文章目录一:BFS算法局限性二:迪杰斯特拉(dijkstra)算法基本思想三:迪杰斯特拉(dijkstra)算法代码实现四:迪杰斯特拉(dijkstra)算法代码视频演示五:迪杰斯特拉(dijkstra)算法动画演示六:迪杰斯特拉(dijkstra)算法答题规范最短路径shortestpath):主要有以下两类最短路径问题单源最短路径问题:一个顶点到其他顶点最短路径迪杰斯特拉算法(dijkstra)(带权图、无权图)-本节讲解BFS算法(无权图)–点击跳转各顶点间最短路径问题:也即每一对顶点间原创 2021-11-25 11:25:22 · 2210 阅读 · 2 评论 -
(王道408考研数据结构)第六章图-第四节3:最短路径之BFS算法(思想、代码、演示、答题规范)
文章目录一:BFS算法基本思想二:BFS算法代码三:反思最短路径shortestpath):主要有以下两类最短路径问题单源最短路径问题:一个顶点到其他顶点最短路径迪杰斯特拉算法(dijkstra)(带权图、无权图)BFS算法(无权图)各顶点间最短路径问题:也即每一对顶点间最短路径弗洛伊德算法-点击跳转最短路径在通信、交通等领域有重要应用一:BFS算法基本思想注意:无权图可以视为权值均为1的带权图BFS算法:从某一个顶点AAA开始找到它的邻接点,对应最短路径为1,接着再通过原创 2021-11-25 10:11:20 · 1509 阅读 · 0 评论