是的,这个难题已经完成

时间:2015-12-06 07:41:58

标签: java comparable compareto

您是否遇到过这样的情况:在java中,您需要比较两个对象,这通常是通过重载Comparable接口中的'compareTo'方法来完成的。有时,这种比较应该过于复杂,我们需要比较对象中的每个项目,以确切知道哪个项目更大。但是,我们可能不需要确保可比较的方法每次都返回正确的结果。让我们说,在大多数情况下我们可以得到正确的比较(超过95%),但我们也可能在极少数时间内得到错误的答案。在这种容忍度下,也许我们可以获得更快的比较方法。精度更低,运行速度更快。这是我的导师的任务,所以有人可以给我一些实例吗?您可以描述一种您之前可能遇到的复杂比较方法,我想通过降低准确率来发现一种减少运行时间的新方法。非常感谢。

1 个答案:

答案 0 :(得分:2)

您可以进行近似比较,一个简单的比较是一个字符串比较忽略大小写,一个更复杂的比较是比较字符串之间的距离。这个问题是这些解决方案的比较成本要慢得多,即精确比较通常比近似比较快。

我能想到的唯一例子是比较图像。您可以比较压缩图像文件的大小和一些随机部分。这应该检测文件在大多数时间是否不同,但它比比较整个文件要快。

然而,如果这是家庭作业,那么你的导师应该提供这个例子。我会请他/她说这个技术何时有用,否则我已经指出这通常比较精确的比较慢而不是快。