สมมติว่าเราได้รับอาร์เรย์ของจำนวนเต็ม สมมุติว่า arr เราจำเป็นต้องเขียนฟังก์ชันที่ทำให้ศูนย์ทั้งหมดอยู่ด้านหลังอาร์เรย์โดยแก้ไขรายการในตำแหน่ง
ฟังก์ชันควรทำในลักษณะที่การเรียงลำดับสัมพัทธ์ขององค์ประกอบอื่นยังคงเหมือนเดิม
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตเป็น −
const arr = [0, 11, 0, 22, 67];
ดังนั้นควรแก้ไขอาร์เรย์เป็น −
const output = [11, 22, 67, 0, 0];
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [0, 11, 0, 22, 67]; const moveZeroToEnd = (arr = []) => { const swap = (array, ind1, ind2) => { const temp = array[ind1]; array[ind1] = array[ind2]; array[ind2] = temp; }; let j = 0; for (let i = 0; i < arr.length; ++ i) { if (arr[i] !== 0) { swap(arr, i, j++); } } while (j < arr.length) { arr[j++] = 0; }; }; moveZeroToEnd(arr); console.log(arr);
ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
[11, 22, 67, 0, 0]