对于大学的项目,当给定一组元素和所述元素之间的关系集合时,我们必须实现一些不同的算法来计算等价类。(Dis)证明由于语言内部原因,一种算法比另一种算法运行得更快
我们被指示执行Union-Find算法及其优化(Union by Depth,Size)。无意中(做了一些我认为对算法正确性所必需的东西),我发现了另一种优化算法的方法。
它不如联盟深度,但接近。我不能为了我的生活找出它为什么速度如此之快,所以我咨询了一位无法解决问题的助教。
该项目是在Java中,我使用的数据结构是基于整数的简单数组(的对象,而不是int
) 后来,在该项目的评价,有人告诉我,它可能有一些东西需要做的Java缓存“,但我无法在网上找到任何关于缓存如何影响的信息。
没有计算算法的复杂度,如何证明或反驳我的优化是如此之快,因为java的做事方式是什么?以另一种(低级?)语言实现它?但是谁会说那种语言不会做同样的事情呢?
我希望我自己清楚,
感谢
听起来像是一个长达一年的研究项目,我甚至开始了解JIT和GC以及计算机硬件架构和... – 2010-12-20 01:15:55