Segregate Even and Odd numbers
Segregate Even and Odd
numbers
Given an array A[], write a function that segregates even and odd
numbers. The functions should put all even numbers first, and then odd numbers.
// C program to segregate even and odd elements of array
#include<stdio.h>
/* Function to swap *a and *b */
void swap(int *a, int *b);
void segregateEvenOdd(int arr[], int size)
{
/* Initialize left and
right indexes */
int left = 0,
right = size-1;
while (left
< right)
{
/* Increment left
index while we see 0 at left */
while
(arr[left]%2 == 0 && left < right)
left++;
/* Decrement right
index while we see 1 at right */
while
(arr[right]%2 == 1 && left < right)
right--;
if (left
< right)
{
/* Swap arr[left]
and arr[right]*/
swap(&arr[left], &arr[right]);
left++;
right--;
}
}
}
/* UTILITY FUNCTIONS */
void swap(int *a, int *b)
{
int temp =
*a;
*a = *b;
*b = temp;
}
/* driver program to test */
int main()
{
int arr[] =
{12, 34, 45, 9, 8, 90, 3};
int arr_size
= sizeof(arr)/sizeof(arr[0]);
int i = 0;
segregateEvenOdd(arr,
arr_size);
printf("Array after segregation ");
for (i = 0; i
< arr_size; i++)
printf("%d ", arr[i]);
return 0;
}
Output:
Array after segregation 12
34 90 8 9 45 3
Example:
Input = {12, 34,
45, 9, 8, 90, 3}
Output = {12, 34, 8, 90, 45, 9, 3}
Segregate Even and Odd numbers
Reviewed by Unknown
on
August 25, 2018
Rating:
No comments:
If you have any doubt or query ,comment below: