当您要计算合并排序的运行时间时,正确的做法是将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);
哪个是正确的,因为结果是不同的?
1条答案
按热度按时间brccelvz1#
第一个是正确的,因为它获取操作之前的时间(合并排序),执行操作,然后获取操作之后的时间,使用这两个时间来计算所花费的时间。
第二个是不正确的,因为它执行操作,然后用时间进行计算,而它计算的时间与运行合并排序算法所用的时间无关。
注:变量
running-time
无效。考虑把它改成runningTime
,或者最坏的情况running_time
.