using System.Collections.Generic;
public static void Main()
var input = new int[5]{10,5,7,3,2};
Console.WriteLine($"Input: {String.Join(" ", input)}");
quickSort(input, 0, input.Count-1);
Console.WriteLine($"Sorded: {String.Join(" ", input)}");
Console.WriteLine("Hello World");
static public int Partition(int[] arr, int left, int right) {
while (arr[left] < pivot) {
while (arr[right] > pivot) {
static public void quickSort(int[] arr, int left, int right) {
pivot = Partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
private static void QuickSort(List<int> values, int left, int right)
var pivot = Partition(values, left, right);
QuickSort(values, left, pivot - 1);
QuickSort(values, pivot + 1, right);
private static int Partition(List<int> values, int left, int right)
var pivot = values[left];
while (values[left++] < pivot && left <= right)
while (values[right--]> pivot && left <= right)
if (values[left] == values[right])
Swap(values, left, right);
private static void Swap(List<int> values, int leftIndex, int rightIndex)
var temp = values[leftIndex];
values[leftIndex] = values[rightIndex];
values[rightIndex] = temp;