快排模板题,输出中位数即可
附AC代码
#include<iostream>
using namespace std;
void Sort(int nLeft, int nRight, int NumList[])
{
if (nRight <= nLeft)
{
return;
}
int i = nLeft;
int j = nRight;
int nTemp = NumList[i];
while (i < j)
{
while (i < j && nTemp <= NumList[j])
{
j--;
}
if (i < j)
{
NumList[i++] = NumList[j];
}
while (i < j && nTemp >= NumList[i])
{
i++;
}
if (i < j)
{
NumList[j--] = NumList[i];
}
}
NumList[i] = nTemp;
Sort(nLeft, i, NumList);
Sort(i + 1, nRight, NumList);
}
int main()
{
int nNumCount;
int NumList[10001];
while (cin >> nNumCount)
{
for (int i = 0; i < nNumCount; i++)
{
cin >> NumList[i];
}
Sort(0, nNumCount - 1, NumList);
cout << NumList[nNumCount / 2] << endl;
}
return 0;
}