【发布时间】:2011-05-28 00:39:51
【问题描述】:
对于大学的一个项目,当给定一组元素和所述元素之间的关系集合时,我们必须实现一些不同的算法来计算等价类。
我们被指示实施Union-Find 算法及其优化(Union by Depth、Size)等。偶然(做一些我认为对算法的正确性是必要的)我发现了另一种优化算法的方法。
它没有Union By Depth 快,但很接近。我这辈子都想不通为什么它会这么快,所以我咨询了一位也想不通的助教。
该项目是在 java 中,我使用的数据结构是基于简单的整数数组(对象,而不是 int)
后来,在项目的评估中,我被告知它可能与“Java 缓存”有关,但我在网上找不到任何关于缓存如何影响这一点的信息。
在不计算算法复杂度的情况下,证明或反驳我的优化之所以这么快是因为 java 的做事方式,最好的方法是什么?用另一种(较低级别?)语言实现它?但是谁能说语言不会做同样的事情呢?
我希望我说清楚了,
谢谢
【问题讨论】:
标签: java algorithm optimization complexity-theory time-complexity