-
以下是我自己写的C++代码,其实可以写成决策树的,不过我嫌麻烦,也觉得没必要 -
void sort5Elem(double a, double b, double c, double d, double e, std::vector<double> &sorted)
{
sorted.clear();
double *p1, *p2, *p3, *p4, *p5;
if(a > b) swap(a, b);
if(c > d) swap(c, d);
if(a > c)
{
swap(a, c);
swap(b, d);
}
if(e < c)
{
if(e < a)
{
p1 = &e;
p2 = &a;
if(b > c)
{
p3 = &c;
if(b > d)
{
p4 = &d;
p5 = &b;
}
else
{
p4 = &b;
p5 = &d;
}
}
else
{
p3 = &b;
p4 = &c;
p5 = &d;
}
}
else
{
p1 = &a;
if(b > c)
{
p2 = &e;
p3 = &c;
if(b > d)
{
p4 = &d;
p5 = &b;
}
else
{
p4 = &b;
p5 = &d;
}
}
else
{
p4 = &c;
p5 = &d;
if(b > e)
{
p2 = &e;
p3 = &b;
}
else
{
p2 = &b;
p3 = &e;
}
}
}
}
else
{
p1 = &a;
if(e < d)
{
swap(e, d);
}
if(b < d)
{
p5 = &e;
p4 = &d;
if(b < c)
{
p2 = &b;
p3 = &c;
}
else
{
p2 = &c;
p3 = &b;
}
}
else
{
p2 = &c;
p3 = &d;
if(b < e)
{
p4 = &b;
p5 = &e;
}
else
{
p4 = &e;
p5 = &b;
}
}
}
sorted.push_back(*p1);
sorted.push_back(*p2);
sorted.push_back(*p3);
sorted.push_back(*p4);
sorted.push_back(*p5);
}
5个数7次比较排序的代码
最新推荐文章于 2020-10-28 20:50:25 发布