Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практики(Вариант №7) / Практическая работа №2.pdf
Скачиваний:
0
Добавлен:
23.02.2026
Размер:
437.64 Кб
Скачать

Приложение В

(обязательное) Сортировка обменом

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();

16

Console.WriteLine($"{size} \t{stopwatch.Elapsed.TotalMilliseconds:F6}\t{comparisons}\t\t{swaps}\t\t{comparisons + swaps}");

} } }

17

Соседние файлы в папке Практики(Вариант №7)