Алгоритм сортировки пузырьком относится к простейшим алгоритмам сортировки и часто применяется в учёбных целях, однако, в практическом плане применяется крайне редко (лишь на небольших массивах). Сложность алгоритма: O(n2). Смысл алгоритма состоит в том, что самые «легкие» (например, меньшие по значению) элементы массива как бы «всплывают» (перемещаются к началу массива) , а самые «тяжелые» — «тонут» (перемещаются в конец массива). Отсюда и название «Сортировка пузырьком»
Алгоритм
- Каждый элемент массива сравнивается с последующим и если
элемент[i] > элемент[i+1]
происходит замена. - Шаг 1 повторяется
n-1
раз, гдеn
— количество элементов в массиве.
Реализация алгоритма «Сортировка пузырьком» в C#
Для реализации алгоритма «Сортировка пузырьком» (или, как иногда говорят — пузырьковая сортировка) написан метод, в качестве аргумента которому передается неотсортированный массив:
static void BubbleSort(int[] inArray) { for (int i = 0; i < inArray.Length; i++) for (int j = 0; j < inArray.Length - i - 1; j++) { if (inArray[j] > inArray[j + 1]) { int temp = inArray[j]; inArray[j] = inArray[j + 1]; inArray[j + 1] = temp; } } }
Пример сортировки массива
static void Main(string[] args) { Console.WriteLine("Введите через запятую целые числа и нажмите Enter"); string[] nums = Console.ReadLine().Split(new char[] { ',' }); int[] intArray = new int[nums.Length]; for (int i = 0; i < nums.Length; i++) { intArray[i] = int.Parse(nums[i]); } BubbleSort(intArray); Console.WriteLine("\r\nОтсортированный массив:"); foreach (int value in intArray) { Console.Write($"{value} "); } }
Консольный вывод
0,-10,-2,1,2,4,5,6,6,6,7,8,9,0,11,10,99,100,-45,200
Отсортированный массив:
-45 -10 -2 0 0 1 2 4 5 6 6 6 7 8 9 10 11 99 100 200