Prenez un tableau d'entiers contenant des nombres négatifs, des nombres positifs et des zéros. Regroupez-le avec une seule itération et en place de sorte que tous les nombres négatifs viennent en premier, suivis de tous les zéros, puis de tous les nombres positifs.
Exemple:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
Notez que les numéros n'ont pas besoin d'être entièrement triés: juste triés par signe.
Ainsi, le tableau final ressemblera à ceci: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
Règles
- Vous ne pouvez utiliser que le tableau d'entrée et une quantité constante de mémoire supplémentaire (c'est-à-dire que vous ne pouvez plus créer de tableaux)
- Vous ne pouvez utiliser qu'une seule boucle, qui peut s'exécuter seulement autant de fois que la longueur du tableau. Vous ne pouvez pas utiliser de fonctions intégrées qui cachent tout type de boucle. Cela inclut des fonctions de tri intégrées.
- Le résultat doit être dans le format que j'ai décrit
Le gagnant sera la personne qui soumettra le code le plus court (compté en octets) qui change le tableau initial dans un format correct (comme décrit ci-dessus).
sort(...)
n'est pas bien car il fait probablement plus d'une itération.