Алгоритм сортировки пузырьком относится к простейшим алгоритмам сортировки и часто применяется в учёбных целях, однако, в практическом плане применяется крайне редко (лишь на небольших массивах). Сложность алгоритма: 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