Related Articles

# Find the count of even odd pairs in a given Array

• Last Updated : 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:
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:

1. Run two nested loops to get all the possible pairs of numbers in the array.
2. For each pair, check whether if a[i] is even and a[j] is odd.
3. If it is, then increase the required count by one.
4. When all the pairs have been checked, print the count in the end.

Below is the implementation of the above approach:

## C++

 `// C++ program to count the pairs in array``// of the form (even, odd)` `#include ``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 code``int` `main()``{``    ``int` `a[] = { 5, 4, 1, 2, 3 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a);``    ``cout << findCount(a, n);``    ``return` `0;``}`

## Java

 `// 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 code``public` `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

 `# 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 code``a ``=` `[ ``5``, ``4``, ``1``, ``2``, ``3` `]``n ``=` `len``(a)` `print``(findCount(a, n))` `# This code is contributed by PratikBasu`

## C#

 `// 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 code``public` `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`

## Javascript

 ``
Output:
`3`

Time Complexity: O(n2)

Auxiliary Space: O(1)

Efficient Approach:

1. For each element starting from index 0 we will check if it’s even or not.
2. If it’s even we will increase the count by 1.
3. Else we will increase our final answer by count.

Below is the implementation of the above approach:

## C++

 `// C++ program to count the pairs in array``// of the form (even, odd)` `#include ``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 code``int` `main()``{``    ``int` `a[] = { 5, 4, 1, 2, 3 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a);``    ``cout << findCount(a, n);``    ``return` `0;``}`

## Java

 `// 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 code``public` `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

 `# 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 code``a ``=` `[ ``5``, ``4``, ``1``, ``2``, ``3` `]``n ``=` `len``(a)` `print``(findCount(a, n))` `# This code is contributed by PratikBasu`

## C#

 `// 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 code``public` `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`

## Javascript

 ``
Output:
`3`

Time Complexity: O(n)

Auxiliary Space: O(1)

Attention reader! All those who say programming isn’t for kids, just haven’t met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

My Personal Notes arrow_drop_up