#include <iostream>
using namespace std;
template <typename T>
T LittleN(T data[],int n,int left,int right)
{
T tmp = data[left];
int i = left;
int j = right;
while(i<j)
{
for(;i<j&&data[j]>=tmp;j--);
data[i]=data[j];
data[j]=tmp;
for(;i<j&&data[i]<=tmp;i++);
data[j]=data[i];
data[i]=tmp;
using namespace std;
template <typename T>
T LittleN(T data[],int n,int left,int right)
{
T tmp = data[left];
int i = left;
int j = right;
while(i<j)
{
for(;i<j&&data[j]>=tmp;j--);
data[i]=data[j];
data[j]=tmp;
for(;i<j&&data[i]<=tmp;i++);
data[j]=data[i];
data[i]=tmp;
}//这之前的部分和快速排序一样
//n-1是要求的数在数组中的下标
//如果枢纽元素得到的下标和要求的元素相同,则枢纽元素就是要求的数
return data[i];
//如果枢纽元素得到的下标比要求的元素大,则再从枢纽元素的前半部分找
LittleN(data,n,left,i-1);
//如果枢纽元素得到的下标比要求的元素小,则再从枢纽元素的后半部分找
else if(i-left<n-1)
//