Приложение в
(обязательное)
Сортировка
обменом
using
System;
using
System.Diagnostics;
class
Program
{
static
void
Main()
{
int[]
sizes = { 1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150,
200, 250, 300, 400, 500, 600, 800, 1000 };
Console.WriteLine("Сортировка
обменом (пузырьковая) - Результаты:");
Console.WriteLine("Размер\tВремя
(мс)\tСравнения\tПерестановки\tВсего
операций");
Console.WriteLine(new
string('-',
60));
foreach
(int
size in
sizes)
{
float[]
arr = new
float[size];
Random
random = new
Random();
for
(int
i = 0; i < arr.Length; i++)
{
arr[i]
= (float)(random.NextDouble()
* 100);
}
float[]
arrCopy = (float[])arr.Clone();
long
comparisons = 0;
long
swaps = 0;
Stopwatch
stopwatch = new
Stopwatch();
stopwatch.Start();
int
k = arrCopy.Length;
bool
swapped
for
(int
i = 0; i < k - 1; i++)
{
swapped
= false
for
(int
j = 0; j < k - i - 1; j++)
{
comparisons++;
//
счетчик для сравнения элементов
if
(arrCopy[j] > arrCopy[j + 1])
{
swaps++;
//
счетчик перестановок
float
temp = arrCopy[j];
arrCopy[j]
= arrCopy[j + 1];
arrCopy[j
+ 1] = temp;
swapped
= true;
}
}
if
(!swapped)
break;
}
stopwatch.Stop();
Console.WriteLine($"{size}\t{stopwatch.Elapsed.TotalMilliseconds:F6}\t{comparisons}\t\t{swaps}\t\t{comparisons
+ swaps}");
}
}
}
Томск
2025