gpt4 book ai didi

java - 为什么搜索次数越多,搜索时间就越短?

转载 作者:行者123 更新时间:2023-11-30 04:53:03 25 4
gpt4 key购买 nike

我正在做一项作业,要求我测量两种不同的搜索算法(顺序搜索算法和二进制搜索算法)所花费的时间(我想强调效率)。我有一个大约 280 个单词的目标列表和一个大约 1200 个单词的搜索池列表。我已读取这两个文件并将单词存储在 ArrayList 中。

这是我迄今为止实现的顺序算法的相关部分:

long startTime = System.nanoTime();

//search sorted list for as long as end of list has not been reached and
//current list item lexicographically precedes target String
while((compareResult > 0)&&(position != searchPool.size()-1)){

//update to current position
position += 1;

compareResult = target.compareTo(searchPool.get((int)position));

comparisonCount += 1;

}//end while loop


long endTime = System.nanoTime();

timeElapsed = endTime - startTime; //timeElapsed also a long

此后,我显示进行比较的次数和耗时(以毫秒为单位,所以我首先除以一百万)。

前几个数字返回的时间约为 0.5 到 0.7 毫秒。该数字向下 Swing 到第 32 个字,需要 0.1 毫秒。其余 150 个单词均耗时 0.0 毫秒。

我期望比较次数和耗时之间存在直接相关性。知道出了什么问题吗?

旁白:我想到compareTo方法进行比较的次数(即单词长度)可能会影响时间,但是即使长单词没有出现在搜索列表中(因此必须与所有单词进行比较)在得出结论之前的项目)如果它们出现在下面,则根本不需要时间。

最佳答案

JVM 优化了频繁执行的代码路径,使它们变得更快。另外,根据应用程序,前几次迭代可能涉及建立连接、加载资源等。

因此,作为一般策略,您应该丢弃前几个样本。并将测量结果取为较大样本的平均值,以获得更可靠的结果。

关于java - 为什么搜索次数越多,搜索时间就越短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com