#include<iostream>
using namespace std;
int quickSort(int s[], int l, int r)
{
if (l< r)
{
int i = l, j = r, x = s[l];
while (i < j)
{
while(i < j && s[j]>= x) // 从右向左找第一个小于x的数
j--;
if(i < j)
{
s[i] = s[j];
i++;
}
while(i < j && s[i]< x) // 从左向右找第一个大于等于x的数
i++;
if(i < j)
{
s[j] = s[i];
j--;
}
}
s[i] = x;
return i;
// quickSort(s, l, i - 1); // 递归调用
// quickSort(s, i + 1, r);
}
}
int Search(int s[], int l, int r,int index)
{
int m = quickSort(s, l, r);
if (index == m-l+1) return s[m];
else if (index < m-l+1)
{
return Search(s, l, m-1,index);
}
//后半段
else
{
return Search(s, m+1, r, index-(m-l+1));
}
}
int main()
{
int index = 4;
int array[]={34,65,12,43,67,5,78,10,3,70},k;
int len=sizeof(array)/sizeof(int);
cout<<"The orginal arrayare:"<<endl;
for(k=0;k<len;k++)
cout<<array[k]<<",";
cout<<endl;
int d = Search(array,0,len-1,4);
cout<<d<<endl;
//quickSort(array,0,len-1);
//cout<<"The sorted arrayare:"<<endl;
//for(k=0;k<len;k++)
// cout<<array[k]<<",";
//cout<<endl;
system("pause");
return 0;
}