СД Практика 1
.pdfПриложение А Сортировка расческой
try
{
Console.Write("Введите размер массива: "); int n = int.Parse(Console.ReadLine()); int[] arr = new int[n];
Random random = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = random.Next(0, 1000000); if (i % 2 == 0)
{
arr[i] = arr[i] * -1;
}
}
for (int i = 0; i < arr.Length; i++)
{
Console.Write($"{arr[i]} ");
}
double factor = 1.2473309; int step = n - 1;
while (step >= 1)
{
for (int i = 0; i + step < n; i++)
{
if (arr[i] > arr[i + step])
11
{
int temp = arr[i]; arr[i] = arr[i + step]; arr[i + step] = temp;
}
}
step = Convert.ToInt32(Math.Floor(step / factor));
}
Console.WriteLine();
for (int i = 0; i < arr.Length; i++)
{
Console.Write($"{arr[i]} ");
}
}
catch (Exception)
{
Console.WriteLine("Что-то пошло не так :(");
}
12
Приложение Б Быстрая сортировка
try
{
Console.Write("Введите размер массива: "); int n = int.Parse(Console.ReadLine()); int[] arr = new int[n];
Random random = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = random.Next(0, 1000000); if (i % 2 == 0)
{
arr[i] = arr[i] * -1;
}
}
for (int i = 0; i < arr.Length; i++)
{
Console.Write($"{arr[i]} ");
}
void quick_sorting(int[] arr, int l, int r)
{
int temp;
int x = arr[l + (r - l) / 2]; int i = l;
int j = r; while (i <= j)
{
while (arr[i] < x) i++;
13
while (arr[j] > x) j--; if (i <= j)
{
temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++;
j--;
}
}
if (i < r)
{
quick_sorting(arr, i, r);
}
if (l < j)
{
quick_sorting(arr, l, j);
}
}
quick_sorting(arr, 0, n-1);
Console.WriteLine();
for (int i = 0; i < arr.Length; i++)
{
Console.Write($"{arr[i]} ");
}
}
catch (Exception)
{
14
Console.WriteLine("Что-то пошло не так :(");
}
15
Приложение В Сортировка вставками
try
{
Console.Write("Введите размер массива: "); int n = int.Parse(Console.ReadLine()); int[] arr = new int[n];
Random random = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = random.Next(0, 1000000); if (i % 2 == 0)
{
arr[i] = arr[i] * -1;
}
}
for (int i = 0; i < arr.Length; i++)
{
Console.Write($"{arr[i]} ");
}
for (int i = 1; i < n; i++)
{
int x = arr[i]; int j = i;
while (j > 0 && (x < arr[j - 1]))
{
arr[j] = arr[j - 1]; j--;
16
}
arr[j] = x;
}
Console.WriteLine();
for (int i = 0; i < arr.Length; i++)
{
Console.Write($"{arr[i]} ");
}
}
catch(Exception)
{
Console.WriteLine("Что-то пошло не так :(");
}
17
