poj2388 快速排序 模板题
2014-08-05 18:39
162 查看
/** \brief poj2388 * * \param date 2014/8/5 * \param state AC * \return memory time * qsort 784K 110ms * ksort 780K 172ms */ #include <iostream> #include <fstream> #include <cstring> #include <algorithm> using namespace std; const int MAXN=10000; int Arr[MAXN]; /* bool Comp(const int& a,const int& b) { if(a!=b)return a<b; else return a>b; } */ int Comp(const void* a,const void* b) { return *(int* )a-*(int* )b; } void ksort(int l,int h,int a[]) { if(h<l+2)return ; int e=h,p=l; while(l<h) { while(++l<e && a[l]<=a[p]); while(--h>p && a[h]>=a[p]); if(l<h) swap(a[l],a[h]); } swap(a[h],a[p]); ksort(p,h,a); ksort(l,e,a); } int main() { //cout << "Hello world!" << endl; //freopen("input.txt","r",stdin); int N; while(scanf("%d",&N)!=EOF) { memset(Arr,0,sizeof(Arr)); for(int i=0;i<N;i++) { cin>>Arr[i]; } // //qsort(Arr,N,sizeof(Arr[0]),Comp); //cout<<Arr[N/2]<<endl; ksort(0,N,Arr); cout<<Arr[N/2]<<endl; } return 0; }
相关文章推荐
- poj 2388 Who's in the Middle(快速排序求中位数)
- POJ 2388快速排序
- POJ 2388:Who's in the Middle:快速排序思想求解中位数
- poj 2388 Who's in the Middle(快速排序求中位数)
- poj 2388 Who's in the Middle(快速排序求中位数)
- POJ 2388 Who's in the Middle(排序)
- poj 随机快速排序(algo.openjudge.cn)
- 快速排序----模板实现
- 快速排序模板
- POJ 2388 Who's in the Middle (快速选择算法:O(N)求数列第K大)
- POJ 2388 Who's in the Middle 排序
- POJ训练计划2388_Who's in the Middle(排序)
- POJ 2388 排序水题
- poj 2388 排序的水题
- 堆排序练习:POJ 2388
- 直接插入排序练习:POJ 2388
- POJ 2388 Who's in the Middle (快速选择算法:O(N)求数列第K大)
- poj 2388 Who's in the Middle-----qsort 排序
- POJ 2007 极坐标排序模板题
- 直接插入排序练习:POJ 2388