Skip to content
Separate Even and Odd numbers

Separate Even and Odd numbers in an array

🟢 Easy 🧩 Pattern – Arrays

Given an array which contains even and odd numbers, we need to seperate them by putting the odd numbers first followed by the even numbers.

Example

Input: [1, 3, 2, 5, 9, 4]
Output:[1, 3, 5, 9, 2, 4]

Input: [8, 13, 14, 16, 17, 18, 21]
Output:[13, 17, 21, 8, 14, 16, 18]Code language: JavaScript (javascript)

Solution

The oddPointer variable is used to keep track of the index where the next odd number should be placed.

function separateEvenOdd(nums) {
  let oddPointer = 0;
  for (let i = 0; i < nums.length; i++) {
    if (nums[i] % 2 !== 0) {
      const temp = nums[i];
      nums[i] = nums[oddPointer];
      nums[oddPointer] = temp;
      oddPointer++;
    }
  }
  return nums;
}

const nums = [8, 13, 14, 16, 17, 18, 21];
console.log(separateEvenOdd(nums));
// [13, 17, 21, 16, 8, 18, 14]Code language: JavaScript (javascript)

Solution with even first

The evenPointer variable is used to keep track of the index where the next odd number should be placed.

function separateEvenOdd(nums) {
  let evenPointer = 0;
  for (let i = 0; i < nums.length; i++) {
    if (nums[i] % 2 === 0) {
      const temp = nums[i];
      nums[i] = nums[evenPointer];
      nums[evenPointer] = temp;
      evenPointer++;
    }
  }
  return nums;
}

const nums = [8, 13, 14, 16, 17, 18, 21];
console.log(separateEvenOdd(nums));
// [8, 14, 16, 18, 17, 13, 21]Code language: JavaScript (javascript)
Back to Top
Tags: