using System;
public class Test{
static int BubbleSort(int[] mas){
int CountReplace = 0;
/* Обычный метод сортировки пузырьком */
/*
for (int i = 0; i < mas.Length; i++){
for (int j = i + 1; j < mas.Length; j++){
if (mas[i] > mas[j]){
int temp = mas[i];
mas[i] = mas[j];
mas[j] = temp;
CountReplace++;
}
}
}
*/
/* Усовершенствованный метод сортировки пузырьком */
bool sorted = true;
while (sorted){
sorted = false;
for (int j = 0; j < mas.Length - 1; j++){
if (mas[j] > mas[j + 1]){
int tmp = mas[j];
mas[j] = mas[j + 1];
mas[j + 1] = tmp;
sorted = true;
CountReplace++;
}
}
}
return CountReplace;
}
static void Main(string[] args)
{
int CountReplace = 0;
Console.WriteLine("Сколько чисел будем сортировать?");
int N = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите числа для сортировки:");
int[] mas = new int[N];
for (int i = 0; i < mas.Length; i++)
{
mas[i] = Convert.ToInt32(Console.ReadLine());
}
CountReplace = BubbleSort(mas);
Console.WriteLine("После сортировки:");
for (int i = 0; i < mas.Length; i++)
{
Console.WriteLine(mas[i]);
}
Console.WriteLine("Число перестановок: " + CountReplace);
Console.ReadLine();
}
}