Возьмите массив целых чисел, содержащий отрицательные числа, положительные числа и нули. Сгруппируйте его с одной итерацией и поместите так , чтобы все отрицательные числа шли первыми, за которыми следовали все нули, а затем все положительные числа.
Пример:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
Обратите внимание, что числа не должны быть полностью отсортированы: просто отсортированы по знаку.
Итак, окончательный массив будет выглядеть так: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
правила
- Вы можете использовать только входной массив и постоянный объем дополнительной памяти (т.е. вы не можете создавать больше массивов)
- Вы можете использовать только один цикл, который может выполняться только столько раз, сколько длина массива. Вы не можете использовать встроенные функции, которые скрывают какой-либо цикл. Это включает в себя встроенные функции сортировки.
- Результат должен быть в формате, который я описал
Победителем станет тот, кто предоставит самый короткий код (в байтах), который изменит исходный массив в правильный формат (как описано выше).
sort(...)
не подходит, поскольку, вероятно, он выполняет более одной итерации.