2015-12-30 7 views
0

У нас есть серия чисел. Мы можем видеть, что эта серия почти отсортировано. Поскольку эта серия почти отсортировано означает ли это, что сложность O (n)?Сложность сортировки пузырьков O (n)

Series

+0

Это будет зависеть от определения «почти отсортированного». – SamB

+1

Что относительно (2 3 4 5 6 1)? Это также почти сортировано. –

ответ

1

Нет. Есть так много причин, это трудно понять, с чего начать. Во-первых, нотация O() не определена для конкретных примеров ввода. Сложность алгоритма определена для любого возможного ввода.

Кроме того, даже почти Сортированный список может потребовать O (N^2) время сортировки. Просто возьмите отсортированный список, замените первый и последний элементы и передайте это в Bubble Sort. Похоже, что это будет соответствовать определению почти отсортированного, но Bubble Sort примет N^2 операций, чтобы поместить список в полный порядок.

+0

https://en.wikipedia.org/wiki/Bubble_sort, похоже, не согласен. Он рассматривает нотацию O() как не определяемую размером ввода, но случаи ввода являются штрафом - худшим случаем, в лучшем случае каждый может получить O() 'd –

+0

@DavidB wikipedia можно редактировать goofballs, но O() Обозначение для алгоритма не имеет ничего общего с конкретными случаями и всегда зависит от размера ввода. Я предлагаю вам проверить Cormen, Leiserson, Rivest, «Введение в алгоритмы» для авторитетного источника, а не википедии. –

+0

Если википедия ошибочна в этом вопросе, мы должны это исправить. –

0

Да. Этот пример можно рассматривать как O(n).,

Есть случаи, когда O(n) и даже меньше, чем это возможно.

ПРИМЕРЫ

Уже отсортированный массив (1 2 3 4 5 6)

Массив, в котором обмениваются (2 1 4 3 6 5)

т.д.

только альтернативные значения Сохраняя лучшие случаи или исключительные случаи в сторону, сложность сортировки Bubble для заданного случайного несортированного массива - O(N^2).

+0

Этот ответ создает впечатление, что вы не представляете, для чего предназначена O(). –

0

Это очень расплывчато, но Обозначение O() говорит о В худшем случае runtime. Таким образом, любой вход, который передается для сортировки пузырьков (например), может принимать не более n^2 количество операций для сортировки. Конкретные примеры могут занимать от наименьшего количества операций до максимально возможного количества операций (с пузырьковой сортировкой, которая равна O (n^2)).

Смежные вопросы