ใช้อาร์เรย์ของจำนวนเต็มที่มีจำนวนลบจำนวนบวกและเลขศูนย์ จัดกลุ่มมันด้วยการวนซ้ำหนึ่งครั้งและอยู่ในตำแหน่งที่จำนวนลบทั้งหมดมาก่อนตามด้วยศูนย์ทั้งหมดตามด้วยตัวเลขบวกทั้งหมด
ตัวอย่าง:
Input: 5, 3, 0, -6, 2, 0, 5
Output: -6, 0, 0, 3, 2, 5, 5
โปรดทราบว่าตัวเลขไม่จำเป็นต้องถูกจัดเรียงอย่างสมบูรณ์เพียงแค่เรียงตามเครื่องหมาย
ดังนั้นอาร์เรย์สุดท้ายจะมีลักษณะดังนี้: -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, +
กฎระเบียบ
- คุณสามารถใช้อาร์เรย์อินพุตและหน่วยความจำเพิ่มเติมจำนวนคงที่เท่านั้น (เช่นคุณไม่สามารถสร้างอาร์เรย์ได้อีก)
- คุณสามารถใช้หนึ่งวงเท่านั้นซึ่งอาจดำเนินการได้หลายครั้งตามความยาวของอาร์เรย์ คุณไม่สามารถใช้ฟังก์ชั่นในตัวที่ปิดบังการวนลูปได้ทุกชนิด ซึ่งรวมถึงฟังก์ชั่นการเรียงลำดับในตัว
- ผลลัพธ์ควรอยู่ในรูปแบบที่ฉันอธิบาย
ผู้ชนะจะเป็นคนที่จะส่งรหัสที่สั้นที่สุด (นับเป็นไบต์) ที่เปลี่ยนอาร์เรย์เริ่มต้นเป็นรูปแบบที่ถูกต้อง (เช่นที่อธิบายข้างต้น)
sort(...)
ไม่ถูกต้องเนื่องจากอาจทำซ้ำได้มากกว่าหนึ่งครั้ง