Prendi una matrice di numeri interi che contengono numeri negativi, numeri positivi e zeri. Raggruppalo con una iterazione e posiziona in modo tale che tutti i numeri negativi vengano prima, seguiti da tutti gli zeri, seguiti da tutti i numeri positivi.
Esempio:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
Nota che non è necessario che i numeri siano completamente ordinati: basta ordinare per segno.
Quindi, l'array finale sarà simile al seguente: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
Regole
- È possibile utilizzare solo l'array di input e una quantità costante di memoria aggiuntiva (ovvero non è possibile creare altri array)
- È possibile utilizzare solo un loop, che può essere eseguito solo tante volte quanto la lunghezza dell'array. Non è possibile utilizzare le funzioni integrate che nascondono alcun tipo di loop. Ciò include le funzioni di ordinamento integrate.
- Il risultato dovrebbe essere nel formato che ho descritto
Il vincitore sarà la persona che invierà il codice più breve (conteggiato in byte) che modifica l'array iniziale in un formato corretto (come descritto sopra).
sort(...)
non vanno bene poiché probabilmente fanno più di una iterazione.