public static void Main()
int[] numbers = new int[]{6, 5, 8, 10, 15, 4, 6, 2, 1, 12};
Program.quicksort(numbers, 0, numbers.Length-1);
foreach (var item in numbers)
Console.Write(" " + item);
public static void quicksort(int[] arr, int start, int end)
int pivot = Program.partition(arr, start, end);
quicksort(arr, start, pivot-1);
quicksort(arr, pivot+1, end);
public static int partition(int[] arr, int start, int end)
while (low <= high && arr[low] <= pivot)
while (low <= high && arr[high] >= pivot)