Poj2388

快排模板题,输出中位数即可
附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;
}

猜你喜欢

转载自blog.csdn.net/RoronoaDZoro/article/details/91554799
今日推荐