public static void Main()
int[] arr=new int[]{7, 10, 4, 3, 20, 15};
QuickSelectResult result=new QuickSelectResult();
Console.WriteLine(QuickSelect(arr,0,arr.Length-1,6,result).number.ToString());
public static QuickSelectResult QuickSelect(int[] arr,int left,int right,int k,QuickSelectResult result)
int pi=Partition(arr,left,right);
QuickSelect(arr,left,pi-1,k,result);
QuickSelect(arr,pi+1,right,k,result);
public static int Partition(int[] arr,int left,int right)
for(int j=left;j<=right-1;j++)
public static void Swap(int[] arr, int i,int j)
public class QuickSelectResult
public int number {get;set;}
public bool stop {get;set;}