我正在尝试对大约500万个元素进行排序,并且需要记录花费的时间。
我正在执行以下操作:

long startTime = (System.currentTimeMillis());
My Sorting Algorithm {}
long totalTime = (System.currentTimeMillis() - startTime);


以毫秒为单位,我会得到适当的时间,但是当我尝试将其转换为秒时,如下所示:

long totalTime = ((System.currentTimeMillis() - startTime)/1000);


它给我0或1,这是不正确的。

我也尝试将其加倍并得到0.0
    double totalTime =(((System.currentTimeMillis()-startTime)/ 1000);

实际上,TimeUnit也给出0
    TimeUnit.MILLISECONDS.toSeconds(totalTime)。

有人可以帮我指出出什么问题吗?

最佳答案

您正在使用整数除法并将结果分配给整数类型。因此,最终结果始终是整数。

要修复,请使用:

double totalTime = ((System.currentTimeMillis() - startTime)/1000.0);

09-30 17:39