Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СД Практика 1

.pdf
Скачиваний:
8
Добавлен:
17.06.2025
Размер:
450 Кб
Скачать
☆

Приложение А Сортировка расческой

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

Соседние файлы в предмете Структуры данных