Find the count of even odd pairs in a given Array

08 Apr, 2021
Given an array arr[], the task is to find the count even-odd pairs in the array.Examples: 
Input: arr[] = { 1, 2, 1, 3 } Output: 2 Explanation: The 2 pairs of the form (even, odd) are {2, 1} and {2, 3}. 
Input: arr[] = { 5, 4, 1, 2, 3} Output: 3   
Naive Approach: 
Run two nested loops to get all the possible pairs of numbers in the array.For each pair, check whether if a[i] is even and a[j] is odd.If it is, then increase the required count by one.When all the pairs have been checked, print the count in the end.
Run two nested loops to get all the possible pairs of numbers in the array.
For each pair, check whether if a[i] is even and a[j] is odd.
If it is, then increase the required count by one.
When all the pairs have been checked, print the count in the end.
Below is the implementation of the above approach: 
C++
Java
Python3
C#
Javascript
// C++ program to count the pairs in array// of the form (even, odd) #include <bits/stdc++.h>using namespace std; // Function to count the pairs in array// of the form (even, odd)int findCount(int arr[], int n){    // variable to store count of such pairs    int res = 0;     // Iterate through all pairs    for (int i = 0; i < n - 1; i++)        for (int j = i + 1; j < n; j++)             // Increment count            // if condition is satisfied            if ((arr[i] % 2 == 0)                && (arr[j] % 2 == 1)) {                res++;            }     return res;} // Driver codeint main(){    int a[] = { 5, 4, 1, 2, 3 };    int n = sizeof(a) / sizeof(a[0]);    cout << findCount(a, n);    return 0;}
// Java program to count the pairs in array// of the form (even, odd)import java.util.*; class GFG{ // Function to count the pairs in array// of the form (even, odd)static int findCount(int arr[], int n){    // Variable to store count of such pairs    int res = 0;     // Iterate through all pairs    for (int i = 0; i < n - 1; i++)        for (int j = i + 1; j < n; j++)             // Increment count            // if condition is satisfied            if ((arr[i] % 2 == 0) &&                (arr[j] % 2 == 1))            {                res++;            }    return res;} // Driver codepublic static void main(String[] args){    int a[] = { 5, 4, 1, 2, 3 };    int n = a.length;    System.out.print(findCount(a, n));}} // This code is contributed by Rohit_ranjan
# Python3 program to count the pairs# in array of the form (even, odd) # Function to count the pairs in # array of the form (even, odd)def findCount(arr, n):     # Variable to store count    # of such pairs    res = 0     # Iterate through all pairs    for i in range(0, n - 1):        for j in range(i + 1, n):             # Increment count            # if condition is satisfied            if ((arr[i] % 2 == 0) and                (arr[j] % 2 == 1)):                res = res + 1     return res # Driver codea = [ 5, 4, 1, 2, 3 ]n = len(a) print(findCount(a, n)) # This code is contributed by PratikBasu
// C# program to count the pairs in array// of the form (even, odd)using System; class GFG{ // Function to count the pairs in array// of the form (even, odd)static int findCount(int []arr, int n){     // Variable to store count of such pairs    int res = 0;     // Iterate through all pairs    for(int i = 0; i < n - 1; i++)       for(int j = i + 1; j < n; j++)                  // Increment count          // if condition is satisfied          if ((arr[i] % 2 == 0) &&              (arr[j] % 2 == 1))          {              res++;          }               return res;} // Driver codepublic static void Main(String[] args){    int []a = { 5, 4, 1, 2, 3 };    int n = a.Length;         Console.Write(findCount(a, n));}} // This code is contributed by Rohit_ranjan
<script> // Javascript program to count the pairs in array// of the form (even, odd) // Function to count the pairs in array// of the form (even, odd)function findCount(arr, n){    // variable to store count of such pairs    let res = 0;     // Iterate through all pairs    for (let i = 0; i < n - 1; i++)        for (let j = i + 1; j < n; j++)             // Increment count            // if condition is satisfied            if ((arr[i] % 2 == 0)                && (arr[j] % 2 == 1)) {                res++;            }     return res;} // Driver codelet a = [ 5, 4, 1, 2, 3 ];let n = a.length;document.write(findCount(a, n)); </script>
3
 
Time Complexity: O(n2)
Auxiliary Space: O(1)
Efficient Approach:  
For each element starting from index 0 we will check if it’s even or not.If it’s even we will increase the count by 1.Else we will increase our final answer by count.
For each element starting from index 0 we will check if it’s even or not.
If it’s even we will increase the count by 1.
Else we will increase our final answer by count.
Below is the implementation of the above approach: 
C++
Java
Python3
C#
Javascript
// C++ program to count the pairs in array// of the form (even, odd) #include <bits/stdc++.h>using namespace std; // Function to count the pairs in array// of the form (even, odd)int findCount(int arr[], int n){    int count = 0, ans = 0;    for (int i = 0; i < n; i++) {         // check if number is even or not        if (arr[i] % 2 == 0)            count++;        else            ans = ans + count;    }    return ans;} // Driver codeint main(){    int a[] = { 5, 4, 1, 2, 3 };    int n = sizeof(a) / sizeof(a[0]);    cout << findCount(a, n);    return 0;}
// Java program to count the pairs// in array of the form (even, odd)class GFG{ // Function to count the pairs in // array of the form (even, odd)static int findCount(int arr[], int n){    int count = 0, ans = 0;    for(int i = 0; i < n; i++)    {                // Check if number is even       // or not       if (arr[i] % 2 == 0)       {           count++;       }       else       {           ans = ans + count;       }    }    return ans;} // Driver codepublic static void main(String[] args){    int a[] = { 5, 4, 1, 2, 3 };    int n = a.length;         System.out.print(findCount(a, n));}} // This code is contributed by amal kumar choubey
# Python3 program to count the pairs# in array of the form (even, odd) # Function to count the pairs in# array of the form (even, odd)def findCount(arr, n):     count = 0    ans = 0         for i in range(0, n):         # Check if number is even or not        if (arr[i] % 2 == 0):            count = count + 1        else:            ans = ans + count                 return ans # Driver codea = [ 5, 4, 1, 2, 3 ]n = len(a) print(findCount(a, n)) # This code is contributed by PratikBasu
// C# program to count the pairs in// array of the form (even, odd)using System; class GFG{ // Function to count the pairs in// array of the form (even, odd)static int findCount(int []arr, int n){    int count = 0, ans = 0;    for(int i = 0; i < n; i++)    {        // Check if number is even or not       if (arr[i] % 2 == 0)       {           count++;         }       else       {           ans = ans + count;       }    }    return ans;} // Driver codepublic static void Main(){    int []a = { 5, 4, 1, 2, 3 };    int n = a.Length;         Console.WriteLine(findCount(a, n));}} // This code is contributed by Code_Mech
<script>// Javascript program to count the pairs in array// of the form (even, odd) // Function to count the pairs in array// of the form (even, odd)function findCount(arr, n){    let count = 0, ans = 0;    for (let i = 0; i < n; i++) {         // check if number is even or not        if (arr[i] % 2 == 0)            count++;        else            ans = ans + count;    }    return ans;} // Driver codelet a = [ 5, 4, 1, 2, 3 ];let n = a.length;document.write(findCount(a, n)); // This code is contributed by subhammahato348.</script>
3
 
Time Complexity: O(n)
Auxiliary Space: O(1)
Rohit_ranjan
PratikBasu
Code_Mech
Amal Kumar Choubey
subhammahato348
frequency-counting
Arrays
Mathematical
School Programming
Arrays
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Top 50 Array Coding Problems for Interviews
Multidimensional Arrays in Java
Stack Data Structure (Introduction and Program)
Linear Search
Program for Fibonacci numbers
Set in C++ Standard Template Library (STL)
Write a program to print all permutations of a given string
C++ Data Types
Merge two sorted arrays