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

СДлаб1

.pdf
Скачиваний:
17
Добавлен:
27.11.2022
Размер:
453.07 Кб
Скачать

Приложение Б

Быстрая сортировка

static void Main(string[] args)

{

Random rand = new Random(); int size = 10;

float[] array = new float[size];

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

{

array[i] = rand.Next(-999999, -1) / 1000f;

Console.Write(array[i] + " ");

}

Console.WriteLine();

AlgFS(array);

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

{

Console.Write(array[i] + " ");

}

}

static void AlgFS(float[] array, int first = 0, int last = 9)

{

if (last < 0)

last = array.Length - 1; if (first >= last)

return;

int medium = (last - first) / 2 + first; int run = first;

AlgSwap(ref array[first], ref array[medium]); for (int i = first + 1; i <= last; ++i)

{

if (array[i] <= array[first])

{

AlgSwap(ref array[++run], ref array[i]);

}

}

AlgSwap(ref array[first], ref array[run]); AlgFS(array, first, run - 1); AlgFS(array, run + 1, last);

}

static void AlgSwap(ref float fir, ref float sec)

{

float temp = fir; fir = sec;

sec = temp;

}

11

Приложение В

Сортировка расческой

Random rand = new Random(); int size = 10;

float[] array = new float[size]; double factor = 1.2473309;

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

{

array[i] = rand.Next(-999999, -1 )/1000f;

Console.Write(array[i] + " ");

}

Console.WriteLine();

int step = size - 1;

while (step >= 1)

{

for (int i = 0; i + step < size; i++)

{

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

{

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

}

step = (int)(step / factor);

}

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

{

Console.Write(array[i] + "”)

12

13

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