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