Оценка временной эффективности алгоритма сортировки Шелла - C#
Формулировка задачи:
Разработать программу оценки временной эффективности алгоритма, провести исследование зависимости времени выполнения алгоритма от размерности массива данных. Требования к программе:
• определение исходных массивов данных для сортировки;
• сортировка и измерение количества сравнений, перестановок, времени сортировки;
вывод оценок эффективности сортировки.
Возможно кому-то встречалось подобное, если да,то напишите где это найти...заранее спасибо.)
Решение задачи: «Оценка временной эффективности алгоритма сортировки Шелла»
textual
Листинг программы
using System; class Program { static void Main() { Console.Write("Введите размер массива: "); int size = int.Parse(Console.ReadLine()); int[] array = new int[size]; Random random = new Random(); int i; Console.WriteLine("Исходный массив"); for (i = 0; i < size; i++) { array[i] = random.Next(0, 50); Console.Write(array[i] + " "); } Console.WriteLine(); int Count = 0; int Replaces = 0; int Time = 0; Massiv(ref array, ref Time, ref Replaces, ref Count); Console.WriteLine("Отсортированный массив."); for (i = 0; i < size; i++) { Console.Write(array[i] + " "); } Console.WriteLine("\nВремя сортировки: " + Time + " мс."); Console.WriteLine("Количество перестановок: " + Replaces); Console.WriteLine("Количество сравнений: " + Count); Console.ReadKey(true); } public static void Massiv(ref int[] mas, ref int time, ref int replaces, ref int count) { int a, j, buf; int start = System.Environment.TickCount; for (a = 0; a < mas.Length-1; a++) { for (j = a+1; j < mas.Length; j++) { if (mas[a] > mas[j]) { replaces++; buf = mas[a]; mas[a] = mas[j]; mas[j] = buf; } count++; } } time = System.Environment.TickCount - start; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д