Bubblesort над другими алгоритмами сортировки?

Почему вы выбрали сортировку пузырьков по другим алгоритмам сортировки?

Ответ 1

Вы бы этого не сделали.

Оуэн Астрахан из Университета Дьюка однажды написал исследовательский документ, в котором прослеживается история создания пузыря и цитирует легенду CS Дон Кнут, говоря

Короче говоря, сортировка пузыря, кажется, не имеет ничего, чтобы рекомендовать его, кроме броского имени и тот факт, что это приводит к некоторым интересным теоретическим проблемам.

В заключение статьи

В этой статье мы исследовали происхождение пузырьковой сортировки и ее устойчивую популярность, несмотря на предупреждения против ее использования многими экспертами. Мы подтверждаем предупреждения, анализируя его сложность как в кодировании, так и во время выполнения.

Сорт пузыря медленнее, чем другие типы O (n 2); он примерно в четыре раза медленнее, чем сортировка вставки, и в два раза медленнее, чем сортировка. Он имеет хорошее поведение в наилучшем случае, но практически недействителен почти на всех реальных наборах данных. Любая хорошая реализация quicksort, heapsort или mergesort, вероятно, превзойдет его с большим отрывом.

Кроме того, президент Соединенных Штатов говорит, что вы не должны его использовать.

Ответ 2

Когда выполняются все следующие условия

  • Скорость реализации важнее скорости выполнения (вероятность < 1%)
  • Bubble sort - единственный алгоритм сортировки, который вы помните из университетского класса (вероятность 99%)
  • У вас нет сортировочной библиотеки (вероятность < 1%)
  • У вас нет доступа к Google (вероятность < 1%)

Это будет меньше, чем 0,000099% вероятность того, что вам нужно реализовать сортировку пузырьков, то есть менее одного миллиона.

Ответ 4

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

Кроме этого, это совершенно бесполезно, ИМО. Даже повод получить что-то и бегать быстро - это вздор, по крайней мере, на мой взгляд. Сортировка сортировки или сортировка сортировки легче писать и/или понимать.

Ответ 5

Если ваши данные находятся на ленте, которая быстро читается вперед, медленнее искать назад и быстро перематывать (или это петля, поэтому она не нуждается в перемотке), тогда пузырьковая система будет работать достаточно хорошо.

Ответ 6

Я подозреваю, что это трюк. В общем случае никто не будет выбирать сортировку пузырьков по другим алгоритмам сортировки. Единственный раз, когда это действительно имеет смысл, это когда вы , который уже сортируется (почти).

Ответ 7

Я предполагаю, что вы выбрали бы сортировку пузырьков, если бы вам нужен алгоритм сортировки, который гарантированно был бы стабильным и имел бы очень небольшой объем памяти. В принципе, если в системе действительно недостаточно памяти (и производительность не вызывает беспокойства), тогда она будет работать и будет легко понятна любому, кто поддерживает код. Это также помогает, если вы заранее знаете, что значения в основном отсортированы уже.

Даже в этом случае сортировка вставки, вероятно, будет лучше.

И если это вопрос трюка, в следующий раз предложите Bogosort в качестве альтернативы. В конце концов, если они ищут плохую сортировку, это путь.

Ответ 8

Сортировка пузырьков проста. Хотя "стандартная" реализация имеет низкую производительность, существует очень простая оптимизация, которая делает ее сильным соперником по сравнению со многими другими простыми алгоритмами. Google 'combsort', и посмотреть волшебство нескольких хорошо расположенных линий. Quicksort по-прежнему превосходит это, но менее очевидна для реализации и нуждается в языке, который поддерживает рекурсивные реализации.

Ответ 9

Я могу придумать несколько причин для сортировки пузырьков:

  • Это базовый элементарный сорт. Они отлично подходят для начинающих программистов, изучающих инструкции if, for и while.

  • Я могу представить некоторое свободное время для программиста, чтобы поэкспериментировать о том, как работают все виды. С чем лучше начать с вершины, чем сорт пузыря (да, это умаляет его ранг, но кто не думает "пузырь", если кто-то говорит "алгоритмы сортировки" ).

  • Очень легко запомнить и работать с любым алгоритмом.

  • Когда я начинал работу с связанными списками, сортировка пузырьков помогла мне понять, как все узлы хорошо работали друг с другом.

  • Теперь я чувствую себя хромой коммерческой рекламой о пузыре, поэтому теперь я буду спокоен.

Ответ 10

Он полезен для упражнений типа "Baby First Sort" в школе, потому что он легко объясняет, как он работает, и его легко реализовать. После того, как вы написали его и, возможно, запустите его один раз, удалите его и никогда не подумайте об этом снова.

Ответ 11

Вы можете использовать Bubblesort, если хотите просто попробовать что-то быстро. Если, например, вы находитесь в новой среде, и вы играете с новой идеей, вы можете быстро бросить пузырь в очень короткое время. Может потребоваться гораздо больше времени, чтобы помнить и писать другой сорт и отлаживать его, и вы все равно можете не ошибиться. Если ваш эксперимент работает, и вам нужно использовать код для чего-то реального, то вы можете потратить время, чтобы понять его.

Нет смысла вкладывать много усилий в алгоритм сортировки, если вы просто прототипируете.

Ответ 12

При демонстрации с конкретным примером, как не выполнять процедуру сортировки.

Ответ 13

Поскольку ваш другой алгоритм сортировки Monkey Sort?;)

Серьезно, однако, сортировка пузырьков в основном является алгоритмом сортировки по образовательным причинам и не имеет практической ценности.

Ответ 14

Когда массив уже "почти" отсортирован или у вас есть несколько добавлений в уже отсортированный список, вы можете использовать сортировку пузырьков для ее использования. Сортировка Bubble обычно работает для небольших наборов данных.