Объясните каждую строчку кода BubbleSort?
Вы можете прокоментировать подробно этот код пузырьковой сортировки. Объяснить каждую строчку, я очень хочу понять этот-то, если есть более современный вариант этого кода, буду рад увидеть, более красивый раскоментированный код.
using System;
namespace sort
{
class Program
{
static int[] BubbleSort(int[] mas)
{
int temp;
for (int i = 0; i < mas.Length - 1; i++)
{
for (int j = 0; j < mas.Length - i - 1; j++)
{
if (mas[j + 1] < mas[j])
{
temp = mas[j + 1];
mas[j + 1] = mas[j];
mas[j] = temp;
}
}
}
return mas;
}
static void Main(string[] args)
{
int[] mass = { 12, 7, 8, 1 };
var rez = BubbleSort(mass);
foreach(int c in rez)
{
Console.WriteLine(c);
}
}
}
}
А именно эта часть кода мне больше интересна для понимание
int temp;
for (int i = 0; i < mas.Length - 1; i++)
{
for (int j = 0; j < mas.Length - i - 1; j++)
{
if (mas[j + 1] < mas[j])
{
temp = mas[j + 1];
mas[j + 1] = mas[j];
mas[j] = temp;
}
}
}
return mas;
}
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Я так понимаю вы должны объяснить код
int temp; // объявление переменной temp будет использоваться промежуточным буфером для хранения значения
for (int i = 0; i < mas.Length - 1; i++) // объявление mas.Length - 1 повторений цикла с шагом 1 по переменной i
{
for (int j = 0; j < mas.Length - i - 1; j++) // объявление mas.Length - 1 - i повторений цикла с шагом 1 по переменной j
{
if (mas[j + 1] < mas[j]) // сверка элементов [j + 1] и [j] массива mas
{
temp = mas[j + 1]; // сохранение в буфер (переменную) temp значение элемента [j + 1] массива mas
mas[j + 1] = mas[j]; // замена значения элемента [j + 1] элементом [j] массива mas
mas[j] = temp; // замена значения элемента [j] массива mas значением temp
}
}
}
return mas; // возврат результирующего массива
где
{ // начало блока
} // конец блока