数据规模比较小的时候复杂度是不是没那么准?
来源:1-5 选择排序法的复杂度分析
jyau
2021-10-20 16:23:13
问题描述:
写了选择排序之后,我也做了测试,发现数组从10000->100000这里是符合O(n^2)的,但是反过来,数组只有1000的时候,耗时跟10000的情况只差了10倍左右,远远达不到100倍的程度。这是不是因为数据规模太小,然后受其它因素影响较大导致的?
相关截图:
相关代码:
public static <E extends Comparable<E>> void sort(E[] arr) { for (int i = arr.length - 1; i >= 0; i--) { int maxIndex = i; for (int j = i - 1; j >= 0; j--) { if (arr[maxIndex].compareTo(arr[j]) < 0) { maxIndex = j; } } if (maxIndex != i) { swap(arr, i, maxIndex); } } }
1回答
是的。小数据规模的时候,操作系统本身的干扰,程序的调度等等会占大比重,所以看不出逻辑本身的性能变化。如果你想看一个算法的性能,必须用相对大的数据,至少让执行时间是秒这个级别。
继续加油!:)
相似问题