Ambil array bilangan bulat yang berisi angka negatif, angka positif, dan nol. Kelompokkan dengan satu iterasi dan di tempat sedemikian rupa sehingga semua angka negatif didahulukan, diikuti oleh semua nol, diikuti oleh semua angka positif.
Contoh:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
Perhatikan bahwa angka-angka tidak perlu disortir sepenuhnya: cukup disortir berdasarkan tanda.
Jadi, array terakhir akan terlihat seperti ini: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
Aturan
- Anda hanya dapat menggunakan array input dan jumlah memori tambahan yang konstan (mis. Anda tidak dapat membuat array lagi)
- Anda hanya dapat menggunakan satu loop, yang dapat mengeksekusi hanya sebanyak panjang array. Anda tidak boleh menggunakan fungsi bawaan yang menyembunyikan segala bentuk loop. Ini termasuk fungsi sortir bawaan.
- Hasilnya harus dalam format yang saya jelaskan
Pemenangnya adalah orang yang akan mengirimkan kode terpendek (dihitung dalam byte) yang mengubah array awal menjadi format yang benar (seperti dijelaskan di atas).
sort(...)
tidak baik karena mungkin melakukan lebih dari satu iterasi.