Segregate even and odd numbers | Set 3
Given an array of integers, segregate even and odd numbers in the array. All the even numbers should be present first, and then the odd numbers.
Examples:
Input : 1 9 5 3 2 6 7 11 Output : 2 6 5 3 1 9 7 11 Input : 1 3 2 4 7 6 9 10 Output : 2 4 6 10 7 1 9 3
We have discussed two different approaches in below posts:
The idea discussed in this post is based on Lomuto’s Partition Scheme
- Maintain a pointer to the position before first odd element in the array.
- Traverse the array and if even number is encountered then swap it with the first odd element.
- Continue the traversal.
C++
// CPP code to segregate even odd // numbers in an array #include <bits/stdc++.h> using namespace std; // Function to segregate even odd numbers void arrayEvenAndOdd(int arr[], int n) { int i = -1, j = 0; int t; while (j != n) { if (arr[j] % 2 == 0) { i++; // Swapping even and odd numbers swap(arr[i], arr[j]); } j++; } // Printing segregated array for (int i = 0; i < n; i++) cout << arr[i] << " "; } // Driver code int main() { int arr[] = { 1, 3, 2, 4, 7, 6, 9, 10 }; int n = sizeof(arr) / sizeof(int); arrayEvenAndOdd(arr, n); return 0; } |
chevron_right
filter_none
Java
// java code to segregate even odd // numbers in an array public class GFG { // Function to segregate even // odd numbers static void arrayEvenAndOdd( int arr[], int n) { int i = -1, j = 0; while (j != n) { if (arr[j] % 2 == 0) { i++; // Swapping even and // odd numbers int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } j++; } // Printing segregated array for (int k = 0; k < n; k++) System.out.print(arr[k] + " "); } // Driver code public static void main(String args[]) { int arr[] = { 1, 3, 2, 4, 7, 6, 9, 10 }; int n = arr.length; arrayEvenAndOdd(arr, n); } } // This code is contributed by Sam007 |
chevron_right
filter_none
Python3
# Python3 code to segregate even odd # numbers in an array # Function to segregate even odd numbers def arrayEvenAndOdd(arr,n): i = -1 j= 0 while (j!=n): if (arr[j] % 2 ==0): i = i+1 # Swapping even and odd numbers arr[i],arr[j] = arr[j],arr[i] j = j+1 # Printing segregated array for i in arr: print (str(i) + " " ,end='') # Driver Code if __name__=='__main__': arr = [ 1 ,3, 2, 4, 7, 6, 9, 10] n = len(arr) arrayEvenAndOdd(arr,n) # This code was contributed by # Yatin Gupta |
chevron_right
filter_none
C#
// C# code to segregate even odd // numbers in an array using System; class GFG { // Function to segregate even // odd numbers static void arrayEvenAndOdd( int []arr, int n) { int i = -1, j = 0; while (j != n) { if (arr[j] % 2 == 0) { i++; // Swapping even and // odd numbers int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } j++; } // Printing segregated array for (int k = 0; k < n; k++) Console.Write(arr[k] + " "); } // Driver code static void Main() { int []arr = { 1, 3, 2, 4, 7, 6, 9, 10 }; int n = arr.Length; arrayEvenAndOdd(arr, n); } } // This code is contributed by Sam007 |
chevron_right
filter_none
PHP
<?php // PHP code to segregate even odd // numbers in an array // Function to segregate // even odd numbers function arrayEvenAndOdd($arr, $n) { $i = -1; $j = 0; $t; while ($j != $n) { if ($arr[$j] % 2 == 0) { $i++; // Swapping even and // odd numbers $x = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $x; } $j++; } // Printing segregated // array for ($i = 0; $i < $n; $i++) echo $arr[$i] . " "; } // Driver code $arr = array(1, 3, 2, 4, 7, 6, 9, 10); $n = sizeof($arr); arrayEvenAndOdd($arr, $n); // This code is contributed by Anuj_67 ?> |
chevron_right
filter_none
Output:
2 4 6 10 7 1 9 3
Time Complexity : O(n)
Auxiliary Space : O(1)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

