Найти тему
Павел

Сортировка методом пузырька(пример на языке C#)

Данная статья поможет понять что такое сортировка методом пузырька, как её написать на языке C# и поможет в принципе понять программирование.

Описание алгоритма:

Идея данной сортировки заключается в попарном сравнении соседних элементов, начиная с нулевого в массиве. Больший элемент при этом в конце первой итерации оказывается на месте последнего элемента массива, и в следующих итерациях мы его уже не сравниваем его с остальными элементами (то есть у нас будет n-1 сравнений). Затем таким же образом мы находим второй по максимальности элемент и ставим его на предпоследнее место, и т. д. После всех итераций получится, что на месте нулевого элемента окажется элемент с наименьшим числовым значением, а на месте последнего — с наибольшим числовым значением.  Таким образом у нас как бы «всплывают» элементы от большего к меньшему.

Примечание: можно также реализовать последовательность от меньшего к большему. В коде это лишь замена знака «>» на знак «<» в коде (подробнее в примечании ниже).

-2

Пример:

У нас имеется массив: 7 2 9 4 1 0

Проводим первую итерацию(повторение цикла). Мы берем нулевой элемент массива (7) и сравниваем его с соседним:

7<>2 9 4 1 0

Так как 7 больше, чем 2, мы меняем эти элементы местами. Получается массив:

2 7 9 4 1 0

Далее мы сравниваем 7 и 9.

2 7<>9 4 1 0

-3

Число 9 больше, чем 7. Значит 7 остаётся на своём месте. Теперь мы будем сравнивать число 9 с остальными числами и, если 9 будет больше, чем соседние с ним числа, то будет меняться местами с ними.

2 7 9<>4 1 0

2 7 4 9<>1 0

2 7 4 1 9<>0

2 7 4 1 0 9

Число 9 заняло своё место и нам его трогать больше не нужно, для этого мы уменьшаем количество повторений на 1(n-1).

таким образом мы повторяем итерации цикла на 1 меньше, чем цифр в массиве.

в итоге у нас должно получиться в ответе:

0 1 2 4 7 9

Теперь напишем код:

int[] nums = { 7, 2, 9 ,4 ,1, 0};

// сортировка

int temp;

for (int i = 0; i < nums.Length - 1; i++){

for (int j = i + 1; j < nums.Length; j++){

if (nums[i] > nums[j]){

temp = nums[i];

nums[i] = nums[j];

nums[j] = temp;}}}

// вывод

Console.WriteLine("Вывод отсортированного массива");

for (int i = 0; i < nums.Length; i++)

{Console.WriteLine(nums[i]);}

-4

#C# #программист #программирование #Сортировк

Вот и всё!

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц