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

sd_1

.pdf
Скачиваний:
26
Добавлен:
31.10.2021
Размер:
684.61 Кб
Скачать

11

}

Приложение Б

using System;

namespace sd_bistrayasort

{

class Program

{

class QuickSorting

{

public static void sorting(double[] arr, long first, long last)

{

double f = arr[(last - first) / 2 + first]; double temp;

long i = first, k = last; while (i <= k)

{

while (arr[i] < f && i <= last) ++i; while (arr[k] > f && k >= first) --k; if (i <= k)

{

temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; ++i; --k;

}

}

if (k > first) sorting(arr, first, k); if (i < last) sorting(arr, i, last);

}

}

class Test

{

static void Main(string[] args)

{

double[] arr = new double[21]; Random rd = new Random(); for (int i = 0; i < arr.Length; i++)

{

arr[i] = rd.NextDouble();

}

System.Console.WriteLine("Массив до сортировки:"); foreach (double x in arr)

12

{

System.Console.Write(x + " ");

}

QuickSorting.sorting(arr, 0, arr.Length - 1); System.Console.WriteLine("\n\nМассив после сортировки:"); foreach (double x in arr)

{

System.Console.Write(x + " ");

}

}

}

}

}

Приложение В

using System;

namespace sd_shella

{

class Program

{

static void Swap(ref double a, ref double b)

{

var f = a; a = b;

b = f;

}

static double[] ShellSort(double[] arr)

{

var d = arr.Length / 2; while (d >= 1)

{

for (var i = d; i < arr.Length; i++)

{

var k = i;

while ((k >= d) && (arr[k - d] > arr[k]))

{

Swap(ref arr[k], ref arr[k - d]); k = k - d;

}

}

d = d / 2;

}

13

return arr;

}

static void Main(string[] args)

{

double[] massiv = new double[21]; Random rand = new Random();

for (int i = 0; i < massiv.Length; i++)

{

massiv[i] = rand.NextDouble();

}

Console.WriteLine("Отсортированный массив: \n {0}", string.Join(",", ShellSort(massiv)));

Console.ReadLine();

}

}

}

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