您的位置:首页 > 其它

2388 Who's in the Middle(简单排序)

2015-08-06 12:10 344 查看
训练计划的第一个问题,首先从水问题开始:排序的数组,中间数则输出。

http://poj.org/problem?id=2388

冒泡排序:



#include <iostream>

using namespace std;

int main()
{
int i, j, n,t;
int a[10000];
cin>>n;
for(i=0; i<n; i++)
{
cin>>a[i];
}

//冒泡排序
for(i=0; i<n-1; i++)
for(j=0; j<n-i-1; j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}

cout<<a[n/2]<<endl;
return 0;
}


高速排序:

#include <iostream>

using namespace std;

//高速排序
void qsort(int a[ ], int l, int r)
{
int x=a[l], i=l, j=r;
if(l>=r) return;
while(i<j)
{
while(i<j && a[j]>=x) j--;
a[i]=a[j];
while(i<j && a[i]<=x) i++;
a[j]=a[i];
}
a[i]=x;
qsort(a,l,i-1);
qsort(a,i+1,r);
}
int main()
{
int i, n;
int a[10000];
cin>>n;
for(i=0; i<n; i++)
{
cin>>a[i];
}
qsort(a,0,n-1);
cout<<a[n/2]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: