1
已解决
屠景瑞
新手光能
新手光能
本蒟蒻超时55分的代码
#include<iostream>
#include<cmath>
using namespace std;
int a[30010],n;
bool mark;
void px(int a[],int n)
{
for(int i=0;i<n-1;i++)
{
mark=true;
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
mark=false;
}
}
if(mark) break;
}
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
px(a,n);
if(n%2==0)
cout<<(a[int(n/2)-1]+a[int(n/2)])/2;
else
cout<<a[int(n/2)];
return 0;
}
本蒟蒻不会sort().
请各位dalao说些不要用sort()的方法。
萌新求助QwQ。
@陆麟瑞
@蒋智航
屠景瑞在2018-10-06 12:23:30追加了内容
我一脸懵逼
两眼茫然
1
已采纳
张元宝
修练者
修练者
额,你居然不会用 sort , 好吧
先排序,
如果是奇数, cout<<a[n/2+1];
如果是偶数,cout<<(a[n/2]+a[n/2+1])/2;
sort 就是 快速排序,定义一个数组 a[100],如果是你要从 0~n-1 排序 ,那就是sort(a,a+n)。
如果是你要从 1~n 排序 ,那就是sort(a+1,a+n+1) 。这样是从小到大排序。
sort( a+? , a+? ) 是控制位置的。
如果要从大到小排序,可以弄一个函数
bool cmp(int x,int y){
return x>y;
}
排序时 sort(a,a+n,cmp);
0