public static void Main()
int[] data={8, 7, 2, 1, 0, 9, 6 };
QuickSort(data,0,data.Length-1);
Console.WriteLine(string.Join(",",data));
private static void QuickSort(int[] data,int l,int r){
var pivotIndex=Partition(data,l,r);
QuickSort(data,l,pivotIndex-1);
QuickSort(data,pivotIndex+1,r);
private static void Swap(int[] data,int position1,int position2){
var temp=data[position1];
data[position1]=data[position2];
private static int Partition(int[] data,int l,int h){
var pivotElement=data[h];
var pivotExchangeCounter=l-1;
if(data[i]<pivotElement){
Swap(data,i,pivotExchangeCounter);
Swap(data,pivotExchangeCounter+1,h);
return pivotExchangeCounter+1;