6次比较在5个元素中找到中位数
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std ;
int main(){
int a,b,c,d,e;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
if(a<b)swap(a,b);
if(c<d)swap(c,d);
if(a<c){swap(a,c);swap(b,d);}
if(b<e)swap(b,e);
if(b<c){swap(b,c);swap(d,e);}
if(e>c) swap(e,c);
printf("%d\n",c);
return 0;
}
7次比较完成5个元素的排序
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std ;
void sort(int& a,int& b,int& c,int& d,int& e)
{
if(a<b)swap(a,b);//1
if(c<d)swap(c,d);//2
if(a<c){swap(a,c);swap(b,d);}//3
if(c<e)//4
{
if(a<e)//5
{
if(b<c)//6
{
if(b<d) swap(b,d);//7
swap(a,d);
return;
}
else{swap(a,d);swap(b,c);return;}//6
}
else{swap(c,e);swap(d,e);}//5
}
else {if(d<e)swap(d,e);}//5
if(b<d)//6
{
if(b<e) swap(b,e);//7
swap(a,e);
swap(c,d);
}
else//6
{
if(b<c) swap(b,c);//7
swap(a,e);
swap(b,d);
}
}
int main()
{
int a,b,c,d,e;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
sort(a,b,c,d,e);
printf("%d%d%d%d%d",a,b,c,d,e);
return 0;
}