冒泡排序 - 如果您需要n个操作来对大小为k的列表进行排序,那么您需要多少操作来排序大小为2k的列表?

时间:2013-02-22 17:25:31

标签: c big-o

这是我正在学习的课程中的一个可选问题,他们提供答案,4n。但现在我想到了多少,我无法弄清楚他们是如何做到这一点的。我还是很新,只是学习大O符号,所以我确定我错过了一些简单的东西,但这对我来说没有意义。我想到它的方式是冒泡排序需要n * k操作,所以如果你把k变成2k我有n * 2k。我相信在最坏的情况下k = n - 1所以它实际上是n * 2n AKA 3n。我可能完全错了,但这就是我在这里寻求帮助的原因。我的课程并没有(或者我觉得)它没有涵盖这样的问题所以我只是不确定如何处理它。谢谢!

1 个答案:

答案 0 :(得分:1)

冒泡排序是Big O k ^ 2复杂度,最坏情况和平均值

因此我们对大小k进行了n次操作,这意味着k ^ 2 = n

所以我们加倍k,我们有(2k)^ 2 = X或4k ^ 2 = X其中X = 2k大小的操作数

插入n = k ^ 2的事实,你有4n = X

Theres你的答案:)