冒泡排序复杂度O(n)

时间:2015-12-30 18:44:08

标签: complexity-theory bubble-sort

我们有一系列数字。我们可以看到这个系列 几乎 已排序。 由于这个系列 几乎排序 这是否意味着复杂性为O(n)?

Series

3 个答案:

答案 0 :(得分:1)

没有。有很多原因很难知道从哪里开始。首先,没有为特定的输入示例定义O()表示法。算法的复杂性是针对任何可能的输入定义的。

除此之外,即使几乎排序列表也需要O(N ^ 2)时间进行排序。只需获取一个排序列表,交换第一个和最后一个元素,然后将其传递给Bubble Sort。这似乎符合几乎排序的定义,但冒泡排序将采用N ^ 2操作将列表按总顺序排列。

答案 1 :(得分:0)

是。 此示例可被视为O(n)。,

有些情况可能会O(n),甚至可能更低。

范例 -

已排序的数组(1 2 3 4 5 6)

仅交换备用值的数组(2 1 4 3 6 5)

除了这些最佳案例或特殊情况外,给定随机未排序数组的冒泡排序的复杂性为O(N^2)

答案 2 :(得分:0)

这非常模糊,但O()表示法谈论最坏情况运行时。因此无论输入什么输入到冒泡(例如),都可以采取最多 n ^ 2个操作来进行排序。具体示例可能需要从尽可能少的操作到尽可能多的操作(使用冒泡排序为O(n ^ 2))。