Реализация алгоритма быстрой сортировки на C#

Вот пример алгоритма быстрой сортировки, реализованного на 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