Вот пример алгоритма быстрой сортировки, реализованного на C#:
using System;
class QuickSort
{
static void Main()
{
int[] arr = { 9, 2, 7, 1, 5, 6, 8, 3, 4 };
Console.WriteLine("Original array:");
PrintArray(arr);
QuickSortAlgorithm(arr, 0, arr.Length - 1);
Console.WriteLine("\nSorted array:");
PrintArray(arr);
}
static void QuickSortAlgorithm(int[] arr, int low, int high)
{
if (low < high)
{
int pivot = Partition(arr, low, high);
QuickSortAlgorithm(arr, low, pivot - 1);
QuickSortAlgorithm(arr, pivot + 1, high);
}
}
static int Partition(int[] arr, int low, int high)
{
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++)
{
if (arr[j] < pivot)
{
i++;
Swap(arr, i, j);
}
}
Swap(arr, i + 1, high);
return i + 1;
}
static void Swap(int[] arr, int i, int j)
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
static void PrintArray(int[] arr)
{
foreach (int element in arr)
{
Console.Write(element + " ");
}
}
}
В этой реализации функция QuickSortAlgorithmвызывается рекурсивно для сортировки массива путем выбора опорного элемента и разделения вокруг него остальных элементов. Функция Partitionвыбирает опорную точку и переупорядочивает элементы массива таким образом, чтобы все элементы, меньшие, чем опорная точка, находились на левой стороне, а все элементы, превышающие опорную точку, — на правой стороне.
Выход будет:
Original array:
9 2 7 1 5 6 8 3 4
Sorted array:
1 2 3 4 5 6 7 8 9