сравнивая числа, чтобы отсортировать, затем получить среднее значение
Сортировка пяти целых чисел с использованием побитовых операторов или операторов сравнения может быть достигнута, сначала получив наибольшее число, затем второе наибольшее, затем третье и так далее.
Вот мой код для получения наибольшего числа:
#include <stdio.h>
int main() {
int a, b, c, d, e;
int aa, bb, cc, dd, ee;
a = 4; b = 2; c = 5; d = 1; e = 3;
aa = (a > b) ?
((a > c) ? ((a > d) ? ((a > e) ? a : e) : ((d > e) ? d : e)) :
((c > d) ? ((c > e) ? c : e) : ((d > e) ? d : e))) :
((b > c) ? ((b > d) ? ((b > e) ? b : e) : ((d > e) ? d : e)) :
((c > d) ? ((c > e) ? c : e) : ((d > e) ? d : e)));
printf("highest: %d\n", aa);
return 0;
}
Я думаю, что с помощью этого метода можно получить второе, третье, четвертое и пятое наибольшее число.
Есть ли другой способ получить медиану из пяти целых чисел, используя операторы сравнения / побитовые операции? любой другой комбинаторный метод может быть действительным.
Кстати, я собираюсь реализовать этот алгоритм на аппаратном уровне.
Использование комбинаторного метода в сортировке будет быстрым, а не конечным автоматом.