Weź tablicę liczb całkowitych zawierających liczby ujemne, liczby dodatnie i zera. Zgrupuj go z jedną iteracją, tak aby wszystkie liczby ujemne były pierwsze, a następnie wszystkie zera, a następnie wszystkie liczby dodatnie.
Przykład:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
Pamiętaj, że liczby nie muszą być w pełni posortowane: wystarczy posortować według znaku.
Tak więc końcowa tablica będzie wyglądać następująco: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
Zasady
- Możesz używać tylko tablicy wejściowej i stałej ilości dodatkowej pamięci (tzn. Nie możesz już tworzyć więcej tablic)
- Możesz użyć tylko jednej pętli, która może wykonać się tyle razy, ile wynosi długość tablicy. Nie możesz używać wbudowanych funkcji, które ukrywają jakąkolwiek pętlę. Obejmuje to wbudowane funkcje sortowania.
- Wynik powinien być w formacie, który opisałem
Zwycięzcą zostanie osoba, która prześle najkrótszy kod (liczony w bajtach), który zmienia początkową tablicę na poprawny format (jak opisano powyżej).
sort(...)
nie są w porządku, ponieważ prawdopodobnie wykonują więcej niż jedną iterację.