计算合并排序的运行时间

beq87vna  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(292)

当您要计算合并排序的运行时间时,正确的做法是将starttime放在调用mergesort函数之前或调用之后:

startTime=System.nanoTime();
    mergeSort(temp,0,temp.length - 1);
    endTime=System.nanoTime();
    running-time=(endTime-startTime);

mergeSort(temp,0,temp.length - 1);
    startTime=System.nanoTime();
    endTime=System.nanoTime();
    duration=(endTime-startTime);

哪个是正确的,因为结果是不同的?

brccelvz

brccelvz1#

第一个是正确的,因为它获取操作之前的时间(合并排序),执行操作,然后获取操作之后的时间,使用这两个时间来计算所花费的时间。
第二个是不正确的,因为它执行操作,然后用时间进行计算,而它计算的时间与运行合并排序算法所用的时间无关。
注:变量 running-time 无效。考虑把它改成 runningTime ,或者最坏的情况 running_time .

相关问题