Tome una matriz de enteros que contengan números negativos, números positivos y ceros. Agrúpelo con una iteración y en su lugar de manera que todos los números negativos sean los primeros, seguidos de todos los ceros, seguidos de todos los números positivos.
Ejemplo:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
Tenga en cuenta que los números no necesitan estar completamente ordenados: solo ordenados por signo.
Entonces, la matriz final se verá así: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
Reglas
- Solo puede usar la matriz de entrada y una cantidad constante de memoria adicional (es decir, no puede crear más matrices)
- Solo puede usar un bucle, que puede ejecutarse solo tantas veces como la longitud de la matriz. No puede utilizar funciones integradas que oculten ningún tipo de bucle. Esto incluye funciones de clasificación incorporadas.
- El resultado debe estar en el formato que describí
El ganador será la persona que presentará el código más corto (contado en bytes) que cambia la matriz inicial a un formato correcto (como se describe anteriormente).
sort(...)
no está bien, ya que probablemente realiza más de una iteración.