小编jta*_*tan的帖子

时间混乱在Java中

对于我参与的项目,我的任务是为两种不同的搜索算法计算搜索时间:二进制搜索和顺序搜索.对于每个算法,我应该记录排序输入和未排序输入的时间.当我比较排序输入与未排序输入的顺序搜索的搜索时间时,我遇到了一些奇怪的事情.根据我先排序的那个,搜索时间将远远大于第二个.因此,如果我在排序的第一个上进行顺序搜索,则会比未排序的顺序搜索花费更长的时间.

这对我来说没有意义,也是我困惑的根源.保证在数据输入中找到所搜索的密钥(通过顺序搜索),因为密钥是从输入中获取的.

这是创建问题的代码.在这种情况下,seqOnUnsorted搜索时间将远远大于seqOnSorted,它不应该是.

public void sequentialSearchExperiment(){
    seqOnUnsorted = sequentialSearchSet(keys, unsortedArray);
    writeOutExperimentResults(seqOnUnsorted, seqOnUnsortedFilename, "Sequential Sort on Unsorted: ");

    seqOnSorted = sequentialSearchSet(keys, sortedArray);
    writeOutExperimentResults(seqOnSorted, seqOnSortedFilename, "Sequential Sort on Sorted: ");

}
Run Code Online (Sandbox Code Playgroud)

sequentialSearchSet()方法如下:

public SearchStats[] sequentialSearchSet(int[] keys, int[] toSearch){
    SearchStats[] stats = new SearchStats[keys.length];

    for (int i = 0; i < keys.length; i++){
        stats[i] = sequentialSearch(keys[i], toSearch);
    }

    return stats;
}
Run Code Online (Sandbox Code Playgroud)

这是sequentialSearch():

public SearchStats sequentialSearch(int key, int[] toSearch){

    long startTime = System.nanoTime(); // start timer

    // step through array one-by-one until key found …
Run Code Online (Sandbox Code Playgroud)

java search timing sequential

3
推荐指数
1
解决办法
168
查看次数

标签 统计

java ×1

search ×1

sequential ×1

timing ×1