POJ2388解题报告

求中间数,先对数据使用快速排序法进行排序,然后输出下标为n/2的元素则可,代码如下#include<iostream> using namespace std; #define Max 10000 void QuickSort(int a[],int low,int heigh) { if(low > heigh) return ; int i; int j; int temp; i = low; j = heigh; temp = a[i]; while(i < j) { while(i<j && a[j] > temp) j--; if(i<j) a[i++] = a[j]; while(i<j && a[i] < temp) i++; if(i<j) a[j--] = a[i]; } a[i] = temp; QuickSort(a,low,--j); QuickSort(a,++i,heigh); } int main() { int n; int b[Max]; while(cin>>n) { for(int k = 0; k<n; k++) { cin>>b[k]; } QuickSort(b,0,n-1); cout<<b[n/2]<<endl; } return 0; }

你可能感兴趣的:(POJ2388解题报告)