From 2e7889a759d8201551dd4acb8f5d676559bcd34e Mon Sep 17 00:00:00 2001 From: vrs-git Date: Sat, 23 Oct 2021 18:49:45 +0530 Subject: [PATCH] Create evenodd.cpp --- evenodd.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 evenodd.cpp diff --git a/evenodd.cpp b/evenodd.cpp new file mode 100644 index 0000000..0a9a5ad --- /dev/null +++ b/evenodd.cpp @@ -0,0 +1,47 @@ +#include +using namespace std; + +void swap(int * x, int * y){ + int t = * x; + * x = * y; + * y = t; +} + +void segregate(int array[], int n){ + int left = 0, right = n - 1; + while (left < right){ + while (array[left] % 2 == 0 && left < right) + left++; + while (array[right] % 2 == 1 && left < right) + right--; + if (left < right){ + swap( & array[left], & array[right]); + left++; + right--; + } + } +} + +int main(){ + + int array[100], n, i; + cout << "Enter number of elements: "; + cin >> n; + cout << "\nEnter elements: "; + + for (i = 0; i < n; i++) + cin >> array[i]; + + cout << "Original array: "; + for (int i = 0; i < n; i++) + cout << array[i] << " "; + + segregate(array, n); + cout << "\nArray after divided: "; + + for (int i = 0; i < n; i++) + cout << array[i] << " "; + + return 0; + +}