摘要:例子: 3-Sum 给定N个整数,这里面有多少个三元组,使其三个整数相加为0,如上面的例子为有4个三元组。 这个问题是许多问题如计算机几何,图形学等的基础. 用简单粗暴的方式来解决3-Sum问题 通过三个for循环来执行 那么怎么计算它运行的时间呢? Java有一个内嵌的函数来计算运行时间:Stop
阅读全文
随笔分类 - 算法
摘要:一系列的人物角色 Programmer,client,theoretician和blocking 学生可能会承担里面的一个或者多个角色 Running time 提出running time这个概念的可能要追溯到很远的时候,那时通过analytic engine来计算how many times t
阅读全文
摘要:Union-find 可以应用在很多方面 之前我们看到了union-find在dynamic connectivity上的应用,接下来介绍它在percolation上的应用。 union-find在Kruskal's minumum spanning tree algorithm(一种图像处理算法)
阅读全文
摘要:Quick union improvements1: weighting 为了防止生成高的树,将smaller tree放在larger tree的下面(smaller 和larger是指number of objects),而不是将larger tree放在smaller tree的下面(如上图中
阅读全文
摘要:Quick union算法 Quick union: Java implementation Quick union 性能分析 在最坏的情况下,quick-union的find root操作cost(访问array的次数)会达到N. 所以quick-union的性能也不好。
阅读全文
摘要:解决dynamic connectivity的一种算法:Quick find Quick find--Data sturcture 如果两个objects是相连的,则它们有相同的array value. Quick find--find&union operation Find很好实现,只需要查看它
阅读全文
摘要:设计算法一般所使用的方法过程 什么是Dynamic connectivity 我们的problem就是支持这两种操作: Union与connected query Example 问题是两个objects之间有path吗,而不是找出这条path(找出这条path将更复杂,在课程的第二部分将会介绍)
阅读全文

浙公网安备 33010602011771号