我刚刚编写了快速合并排序算法,我想制作一个日志 - 日志图,显示其运行时间与要排序的数组大小。
由于我从未这样做过,我的问题是,如果我为数组长度(输入的大小)选择任意数字,或者我应该遵循模式(类似10 ^ 3,10 ^ 4,10 ^ 5,等)?
答案 0 :(得分:0)
通常,您需要为每个方法选择足够大的数组长度,以显示预期的o(n log n)或O(n ^ 2)类型行为。
如果你的n太小,则运行时间可以由其他增长率支配,例如,对于n <1,运行时间= 1000000 * n + n ^ 2的算法将看起来是~O(n)。 1000.对于大多数算法,小n行为意味着您的对数 - 对数图最初将是弯曲的。
另一方面,如果您的n太大,您的算法可能需要很长时间才能完成。
最好的折衷方案可能是从小n开始,n,2n,4n,...或n,3n,9n ......的时间开始增加,直到你可以清楚地看到日志对数图渐近为止直线。