排序4个数字没有数组

我有一个练习,我需要按升序放4个数字,然后在不使用数组的情况下降序。 我只能使用循环和if语句。 我已经完成了3个数字,但现在有4个数字,我无法想到逻辑。

float great1 = 0, great2 = 0, great3 = 0, great4 = 0; int a = 7, b = 5, c = 6, d = 0; // Descending if (a > b && b > c) { great1 = a; great2 = b; great3 = c; } else if (a > b && b  a && a > c) { great1 = b; great2 = a; great3 = c; } else if (b > a && a  a && a > b) { great1 = c; great2 = a; great3 = b; } else { great1 = c; great2 = b; great3 = a; } 

使用分拣网络 :

 int tmp; if (a > b) { tmp = a; a = b; b = tmp; } if (c > d) { tmp = c; c = d; d = tmp; } if (a > c) { tmp = a; a = c; c = tmp; } if (b > d) { tmp = b; b = d; d = tmp; } if (b > c) { tmp = b; b = c; c = tmp; } 

您可以使用此页面为少量输入生成最佳排序网络。