Lấy một mảng các số nguyên chứa số âm, số dương và số không. Nhóm nó với một lần lặp và tại chỗ sao cho tất cả các số âm đứng trước, theo sau là tất cả các số không, theo sau là tất cả các số dương.
Thí dụ:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
Lưu ý rằng các số không cần phải được sắp xếp đầy đủ: chỉ cần sắp xếp theo dấu.
Vì vậy, mảng cuối cùng sẽ trông như thế này: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
Quy tắc
- Bạn chỉ có thể sử dụng mảng đầu vào và một lượng bộ nhớ bổ sung không đổi (nghĩa là bạn không thể tạo thêm bất kỳ mảng nào)
- Bạn chỉ có thể sử dụng một vòng lặp, có thể chỉ thực hiện nhiều lần bằng độ dài của mảng. Bạn không được sử dụng các hàm dựng sẵn che giấu bất kỳ loại vòng lặp nào. Điều này bao gồm các chức năng sắp xếp tích hợp.
- Kết quả phải ở định dạng tôi mô tả
Người chiến thắng sẽ là người sẽ gửi mã ngắn nhất (tính bằng byte) thay đổi mảng ban đầu thành định dạng chính xác (như được mô tả ở trên).
sort(...)
là không tốt vì nó có thể thực hiện nhiều hơn một lần lặp.