算法(第四版)课程
不 彳亍
这个作者很懒,什么都没留下…
展开
-
算法的时间、空间、性能分析
一.想要预估算法的运行时间,可以先计算测试样例的时间;然后将测试样例翻倍,记录时间;然后再翻倍……得到如下模型: 样例(N) 运行时间(T(N)) N x1 2N x2 4N x3 8N x4 16N ? 做图像x轴为lgN,y轴为lg(T(N))。我们一般可以得到一个斜率为b的直线。 lg(T(N)) = blgN + c 同时取2的幂,就可以得到 T(N) = aN^b (a = 2 ^ c) 二.我们想要知道算法内部具体发生了什么,导致了这样的运行时间。 我们可以知原创 2021-04-03 23:27:43 · 837 阅读 · 0 评论 -
并查集
一.数学模型:给定一组对象集合,标号为0 ~ N - 1。我们需要两个操作: 连接两个对象 检查两个对象是否被连接 二.“连接”的性质: 对象与它自己是连接的 连接满足传递性 连接满足对称性 因此我们连接两个对象,实际上两个对象所在的连通分量之内的所有对象也都相互连接了。 连通分量的性质: 连通分量里的对象相互连接 连通分量里的对象与连通分量外的对象不连接 在算法实现的时候,我们不需要记录具体的连接方案。因此连接两个对象的操作可以看作两个对象连通分量的合并操作。而查找操作只需要查找两个对象是否在原创 2021-04-03 22:57:16 · 49 阅读 · 0 评论