Piraisudan Ответов: 1

Как получить восходящие или нисходящие числа в массиве без использования символов < и > в C++?


Привет, я хочу поднимать или опускать числа в массиве без использования символов "<" и ">". А также не используйте предопределенные функции, такие как sort() и так далее...

Дайте мне несколько решений для решения этой проблемы.

Что я уже пробовал:

Я пробовал использовать разные методы, но не мог найти никакого способа без использования символов < и >.

1 Ответов

Рейтинг:
2

Kornfeld Eliyahu Peter

Чтобы отсортировать числа (или что-нибудь в этом роде), вы должны сначала сравнить их, чтобы узнать, где они подходят...
Поскольку вы не хотите использовать базовые операторы сравнения (<, >,=), вам придется изучать битовые операции...
Давайте посмотрим образец

int x, y;

bool xGTy = (((x + y) ^ (x - y)) < 0);

xGTy (x-grater-than-y) истинно, если (x + y) и (x - y) имеет разные знаки, что означает, что x больше y (предполагая положительные целые числа)...
Таким же - очень сложным - способом можно построить функции, которые могут сравнивать числа, используя только битовые операции...
Об этом есть интересная статья: Бит Сложа Хаки[^]