int SelectK(int *ar , int left , int right , int k)
{
if(left == right && k == 1)
{
return ar[left];
}
else
{
int index = Partition(ar , left , right);
int pos = index - left + 1;
if(k <= pos) return SelectK(ar , left , index , k);
else return SelectK(ar , index+1 , right , k = pos);
}
}
int Select_K_Min(int *ar , int n , inr k)
{
if(ar == NULL || n < 1 || k < 0|| k > n)
{
return -1;
}
return SelectK(ar , 0 , n - 1 , k);
}