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

2 АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ

Алгоритм

Структура

Временная сложность

 

данных

Лучшее

В среднем

В худшем

Сортировка

Массив

O(n log(n))

O(n^2 / 2^F)

O(n^2)

расческой

 

 

 

 

Быстрая

Массив

O(n log(n))

O(n log(n))

O(n^2)

сортировка

 

 

 

 

Сортировка

Массив

O(n^2)

O(n^2)

O(n^2)

выбором

 

 

 

 

9

Приложение А

(Обязательное) Сортировка расческой

using System;

class Program

{

static void FillArray(float[] array, int length)

 

 

{

Random r = new Random();

 

 

 

 

for (int i = 0; i < length; i++)

 

 

{

array[i] = r.NextSingle() * (-1);

 

 

}

 

}

 

 

 

 

 

static void PrintArray(float[] arr, int n)

 

{

for (int i = 0; i < n; i++)

 

 

 

 

{

Console.Write($"{arr[i]} ");

 

 

}

 

 

 

 

 

Console.WriteLine();

}

static void rascheska(float[] array, int length)

{double factor = 1.2473309; int step = length - 1; while (step >= 1)

{for (int i = 0; i + step < length; i++)

{if (array[i] > array[i + step])

{

float temp = array[i]; array[i] = array[i + step]; array[i + step] = temp;

 

 

}

}

 

 

 

 

}

step = Convert.ToInt32(Math.Floor(step / factor));

}

 

 

 

 

 

static void Main()

{int n = 20;

float[] arr = new float[n]; FillArray(arr, n);

Console.WriteLine("Несортированный массив"); PrintArray(arr, n);

Console.WriteLine(); Console.WriteLine("Отсортированный массив"); rascheska(arr, n);

}} PrintArray(arr, n);

13

Приложение Б

(Обязательное) Быстрая сортировка

void quickSort(float[] a, int l, int r)

{float temp; int i = l; int j = r;

float x = a[(l + r) / 2]; while (i <= j)

{while (a[i] < x) i++; while (a[j] > x) j--; if (i <= j)

{temp = a[i]; a[i] = a[j]; a[j] = temp; i++;

j--;

 

}

}

 

 

 

if (i < r)

 

 

quickSort(a, i, r);

 

if (l < j)

}

 

quickSort(a, l, j);

 

 

void FillArray(float[] array, int length)

{

Random r = new Random();

for (int i = 0; i < length; i++)

{ array[i] = r.NextSingle() * (-1);

}}

void PrintArray(float[] arr, int n)

{

for (int i = 0; i < n; i++)

 

 

{

Console.Write($"{arr[i]} ");

 

}

 

 

}

Console.WriteLine();

 

 

int n = 20;

float[] arr = new float[n]; FillArray(arr, n);

Console.WriteLine("Несортированный массив"); PrintArray(arr, n);

Console.WriteLine();

11

Console.WriteLine("Отсортированный массив"); quickSort(arr, 0, n — 1);

PrintArray(arr, n);

13

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