sd_1
.pdf11
}
Приложение Б
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();
}
}
}