#include <iostream>
using namespace std;
int Grial(int a[], int m,int n)
{
int i = m;
int j = n;
int temp = a[m];
while (i < j)
{
while (i<j && a[j]>=temp)j--;
a[i] = a[j];
while (i<j && a[i]<=temp)i++;
a[j] = a[i];
}
a[i] = temp;
return i;
}
int Grial(int a[], int m,int n, int val)
{
if (m <= n)
{
int index = Grial(a,m,n);
if (index < val-1)
{
Grial(a, index + 1, n, val);
}
else if (index>val-1)
{
Grial(a, 0, index - 1, val);
}
else
{
return a[index];
}
}
}
int main()
{
int a[] = {1,4,5,2,3};
cout << Grial(a, 0, sizeof(a) / sizeof(int)-1, 5);
}
笔试题之:快排求第n大的数字
最新推荐文章于 2024-04-28 23:40:39 发布