jjzjj

x0000000002

全部标签

java - 排序时非常奇怪的效率怪癖

我目前正在上数据结构类(class),正如您所料,我们必须做的其中一件事就是编写一些常见的排序。在编写我的插入排序算法时,我注意到运行速度明显快于我导师的算法(对于400000个数据点,我的算法花费了大约30秒,他的算法花费了大约90秒)。我通过电子邮件将我的代码发给他,当它们都在同一台机器上运行时,结果相同。我们设法浪费了40多分钟,慢慢地将他的排序方法改为我的排序方法,直到完全一样,逐字逐句,除了一个看似随意的事情。首先,这是我的插入排序代码:publicstaticint[]insertionSort(int[]A){//Checkforillegalcasesif(A==nul

Java方法调用性能

我有这段代码在做RangeMinimumQuery.当t=100000时,i和j在每个输入行中始终变化,其在Java8u60中的执行时间约为12秒。for(inta0=0;a0width[k]){min=width[k];}}writer.write(min+"");writer.newLine();}当我提取一个新方法来寻找最小值时,执行时间快了4倍(大约2.5秒)。for(inta0=0;a0width[k]){min=width[k];}}returnmin;}我一直认为方法调用很慢。但是这个例子显示了相反的情况。Java6也证明了这一点,但两种情况下的执行时间都慢得多(17秒和