Почему вы выбрали сортировку пузырьков по другим алгоритмам сортировки?
Bubblesort над другими алгоритмами сортировки?
Ответ 1
Вы бы этого не сделали.
Оуэн Астрахан из Университета Дьюка однажды написал исследовательский документ, в котором прослеживается история создания пузыря и цитирует легенду CS Дон Кнут, говоря
Короче говоря, сортировка пузыря, кажется, не имеет ничего, чтобы рекомендовать его, кроме броского имени и тот факт, что это приводит к некоторым интересным теоретическим проблемам.
В заключение статьи
В этой статье мы исследовали происхождение пузырьковой сортировки и ее устойчивую популярность, несмотря на предупреждения против ее использования многими экспертами. Мы подтверждаем предупреждения, анализируя его сложность как в кодировании, так и во время выполнения.
Сорт пузыря медленнее, чем другие типы O (n 2); он примерно в четыре раза медленнее, чем сортировка вставки, и в два раза медленнее, чем сортировка. Он имеет хорошее поведение в наилучшем случае, но практически недействителен почти на всех реальных наборах данных. Любая хорошая реализация quicksort, heapsort или mergesort, вероятно, превзойдет его с большим отрывом.
Кроме того, президент Соединенных Штатов говорит, что вы не должны его использовать.
Ответ 2
Когда выполняются все следующие условия
- Скорость реализации важнее скорости выполнения (вероятность < 1%)
- Bubble sort - единственный алгоритм сортировки, который вы помните из университетского класса (вероятность 99%)
- У вас нет сортировочной библиотеки (вероятность < 1%)
- У вас нет доступа к Google (вероятность < 1%)
Это будет меньше, чем 0,000099% вероятность того, что вам нужно реализовать сортировку пузырьков, то есть менее одного миллиона.
Ответ 3
Вы бы применили сортировку пузырьков, если вам нужно создать веб-страницу показывающую анимацию создания пузырьков в действии.
Ответ 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 обычно работает для небольших наборов данных.