我只在理论上读过时间复杂性。有没有办法在程序中计算它们?不是通过“n”之类的假设或其他任何东西,而是通过实际值..
例如..计算合并排序和快速排序的时间复杂度..
Merge Sort= O(nlogn);// any case
Quick Sort= O(n^2);// worst case(when pivot is largest or smallest value)
nlogn 和 n^2 在数学上存在巨大差异..
所以我在我的程序中尝试了这个..
main()
{
long t1=System.nanoTime();
// code of program..
long t2=System.nanoTime();
time taken=t2-t1;
}
我对这两种算法都得到了答案,实际上我尝试过的任何算法大多是 20。
不够System.nanoTime()
精确还是我应该使用较慢的系统?或者还有其他方法吗?