- 博客(5)
- 收藏
- 关注
原创 数据结构-简单谈谈floyd算法
因为dijkstra是确定路径的算法只是盯着以某个认定的顶点为源确定的路径就不会改变遇到负权也不能变通 因此不能做到任何开始顶点任何结束顶点之间的最短距离。floyd是动态的相较于固定路径的dijkstra floyd的动态我感觉也体现在不追求过程的最优 通过任意顺序的顶点反复修正结果 最终才是最优。O(|v|^3)是怎么来的呢 遍历顶点比对是O(|v|) 每个顶点在比对时因为邻接矩阵的构造是O(|v|^2)他们在代码和逻辑上是嵌套的关系所以是O(|v|^3)
2025-08-26 22:49:34
371
原创 数据结构-dijkstra算法的小细节
1.为什么王道讲算法手算时候是一个顶点数组和三个待求数组但是使用邻接矩阵机算时间复杂度是O(|V|^2)呢?因为图使用邻接矩阵表示 计算机确定顶点之间如何连接 遍历时时间复杂度为O(|V|^2)
2025-08-26 10:12:46
155
原创 数据结构-简单谈谈无向图广度优先遍历邻接矩阵和邻接表的时间复杂度问题
无向图邻接矩阵广度优先遍历时因为顶点和定点是否连接都不确定必须遍历每个顶点和其他顶点的矩阵才能知道 一个顶点就需要所有顶点个数的遍历次数所有顶点和边遍历完就是顶点的平方的时间复杂度了。无向图邻接表广度优先遍历时因为除了顶点表就是以顶点表为头结点的边链因此遍历就是顶点和边导致总的遍历时间复杂度为顶点加边。仅遍历图的顶点数据的话只需要顶点个数的时间复杂度就可以。
2025-08-25 13:24:53
119
原创 数据结构-kmp算法
我们可以让模式串先跳到发生字符比对错误的位置再让模式串再回退一个字符,保证主串发生错误位置之前的字符(aba)和和模式串最大程度重合。此时模式串第三个字符的pm值为1 到第三个字符a为止和前缀最多重合第一个字母。abab前缀为a ab aba后缀为b ab bab 最长相等前后缀为ab pm值为2。假设匹配到第四个字符主串和模式串的字符匹配发生了错误我们已经知道主串的前四个字母是aba。aba前缀为a ab 后缀为a ba 最长相等前后缀为a pm值为1。以abababc为例。
2025-08-23 19:00:00
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅