В этой статье описывается метод реализации сортировки коктейлей в сортировке Java Exchange. Поделитесь этим для вашей ссылки. Детали следующие:
Сортировка коктейлей, то есть сортировка направленных пузырьков, сортировка коктейлей, сортировка перемешивания (также может рассматриваться как деформация сортировки выбора), сортировка рябь, сортировка вперед и назад или сортировка счастливого часа - это деформация сортировки пузырьков. Разница между этим алгоритмом и сортировкой пузырьков состоит в том, что при сортировке он сортируется в двух направлениях в последовательности.
Отличается от сортировки пузырьков:
Сортировка коктейлей эквивалентна небольшой деформации сортировки пузырьков. Разница от низкого до высокого, а затем с высоким до низкого уровня, в то время как сортировка пузырьков сравнивает только каждый элемент в последовательности от низкого до высокого. Он может получить немного лучшую производительность, чем сортировка пузырьков, потому что сортировка пузырьков сравнивается только с одного направления (от низкого до высокого) и перемещает только один элемент на петлю.
Принимая последовательность (2,3,4,5,1) в качестве примера, сортировка коктейлей требует только одного посещения последовательности для завершения сортировки, но четыре раза при использовании сортировки пузырьков. Однако в состоянии грязной последовательности эффективность сортировки коктейлей и сортировки пузырьков очень плохая.
Худшая сложность времени o (n^2)
Оптимальная сложность времени o (n)
Средняя временная сложность o (n^2)
Динамическая картина сортировки коктейлей выглядит следующим образом:
Анализ кода:
Пакет com.baobaotao.test; = array.length; J]> Array [j+1]) {Swap (Array, J, J+1); <Array [J-1]) {Swap (Array, J-1, J); static void cocatailsortflag (int [] array) {int length = array.length; ; = false; ; обмениваться входящим b * @param c номер для обмена входящим C */ Public static void Swap (int [] a, int b, int c) {int temp = 0; b]> [c]) {temp = a [b]; void prantarr (int [] array) {for (int c: array) {System.out.print (c + ""); int [] number = {11,95,45,15,78,84,51,24,12}; Cocatailsort (номер);Анализ результатов:
11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95 11 15 15 24 45 51 78 84 95 *********************************** * *** 11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95
Видно, что количество раз, когда коктейли отсортированы, намного меньше, чем у обычных пузырьков. Это займет всего 4 раза, а улучшенная версия сортировки коктейлей логотипа требует всего 3 раза для завершения сортировки.
Я надеюсь, что эта статья будет полезна для всех Java Programming.