答案 0 :(得分:3)
在这种情况下,您不是考虑单个算法的运行时间,而是考虑由k
参数化的算法的系列。考虑k
,您可以比较排序n/n == 1
列表和n/2
2元素列表之间的差异。在中间某处,您想要为(c)部分计算k
的值,使得Θ(nk + n lg(n / k))和Θ(n lg n)相等。 / p>
更详细地说,插入排序是O(n ^ 2),因为(粗略地说)在最坏的情况下,任何单个插入都可能花费O(n)时间。但是,如果子列表具有固定长度k,那么您知道插入步骤为O(1),与您要排序的列表数无关。 (也就是说,瓶颈不再是插入步骤,而是合并阶段。)
答案 1 :(得分:1)
当您使用不同的k值比较不同的算法时,K不是常数。