算法导论摘录
8rfuz
这个作者很懒,什么都没留下…
展开
-
Dijkstra算法
Dijkstra算法 能够实现求得,图中某一源点s分别到其它所有点的最小距离上面的主要内容就是:1.Dijkstra算法的框架2.Dijkstra算法的运行时间效率分析:V记为顶点数,E即为边数a. 最朴素的情形,Dijkstra算法时间复杂度为O(V^2+E)b. 若算法中使用最小二叉堆实现,则时间复杂度为O(VlogV+E原创 2015-10-30 17:34:40 · 437 阅读 · 0 评论 -
算法导论摘录
原创 2015-10-30 15:59:51 · 326 阅读 · 0 评论 -
堆
原创 2015-10-30 16:10:08 · 275 阅读 · 0 评论 -
多项式与快速傅里叶变换(一)
根据上面的Horner法则,可以在O(n^2)时间内求出n个点值。原创 2015-11-02 16:40:02 · 440 阅读 · 0 评论 -
多项式与快速傅里叶变换(二) 原理定义与实现
FFT的递归实现:FFT的递推实现:原创 2016-05-14 12:08:14 · 483 阅读 · 0 评论 -
并查集(DSU)
并查集的英文是Disjoint Set Union, 因此又称(DSU)算法导论里的 不相交集合的数据结构 章节指的就是这个。并查集有两种优化策略:1.按秩合并 Union by Rank2.路径压缩 Path Compression使用与不使用这些策略的时间复杂度分析如下:在实际应用中,人类现有甚至未来的数据几乎不原创 2016-10-26 15:14:08 · 6585 阅读 · 1 评论 -
最小生成树 Prime算法 + 时间复杂度
主要就是以点作为目标来考虑, 而不是以边进行考虑。转载 2016-10-08 17:13:03 · 29277 阅读 · 0 评论 -
最小生成树 kruskal算法+时间复杂度
Kruskal算法与Prime算法的区别就在于一个是以边为目标进行考虑,一个以点为目标进行考虑。由于Kruskal算法以边进行考虑,就涉及到边可能属于两个连通块,这时候就涉及到连通块的判断查找合并。 这个知识点属于 算法导论里 不相交集合 的 内容。转载 2016-10-08 17:34:46 · 22564 阅读 · 1 评论