Упражнения на Java: алгоритм сортировки коктейлей
Алгоритм сортировки Java: упражнение 10 с решением
Напишите Java-программу для сортировки массива натуральных чисел с использованием алгоритма сортировки Коктейля.
Коктейльный шейкер (также известный как двунаправленная пузырьковая сортировка, коктейльная сортировка, шейкерная сортировка, пульсация, случайная сортировка или челночная сортировка) - это разновидность пузырьковой сортировки, которая является одновременно алгоритмом стабильной сортировки и сравнительной сортировкой. Алгоритм отличается от пузырьковой сортировки тем, что он сортирует в обоих направлениях при каждом проходе по списку. Этот алгоритм сортировки лишь немного сложнее в реализации, чем пузырьковая сортировка, и он решает проблему черепах в пузырьковых видах. Он обеспечивает лишь незначительные улучшения производительности и не улучшает асимптотическую производительность; Подобно пузырьковому типу, он не представляет практического интереса, хотя и находит некоторое применение в образовании.
Визуализация типа шейкера :
Пример решения:
Java-код:
import java.util.Arrays;
class cocktailSort
{
void cocktailSort(int nums[])
{
boolean swapped;
do {
swapped = false;
for (int i =0; i<= nums.length - 2;i++) {
if (nums[ i ] > nums[ i + 1 ]) {
//test if two elements are in the wrong order
int temp = nums[i];
nums[i] = nums[i+1];
nums[i+1]=temp;
swapped = true;
}
}
if (!swapped) {
break;
}
swapped = false;
for (int i= nums.length - 2;i>=0;i--) {
if (nums[ i ] > nums[ i + 1 ]) {
int temp = nums[i];
nums[i] = nums[i+1];
nums[i+1]=temp;
swapped = true;
}
}
} while (swapped);
}
// Method to test above
public static void main(String args[])
{
cocktailSort ob = new cocktailSort();
int nums[] = {7, 5, 3, 2, 1, 12, 45};
System.out.println("Original Array:");
System.out.println(Arrays.toString(nums));
ob.cocktailSort(nums);
System.out.println("Sorted Array");
System.out.println(Arrays.toString(nums));
}
}
Пример вывода:
Оригинальный массив: [7, 5, 3, 2, 1, 12, 45] Сортированный массив [1, 2, 3, 5, 7, 12, 45]
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите Java-программу для сортировки массива натуральных чисел, используя алгоритм сортировки BogoSort.
Далее: Напишите программу на Java для сортировки массива заданных целых чисел с помощью алгоритма CombSort.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования