Even Odd problem


#include <iostream>
#include <vector>
using namespace std;


void evenOdd(vector<int> &v) {
int next_even = 0;
int next_odd = v.size() - 1;
while (next_even < next_odd) {
if (v[next_even] % 2 == 1) {
swap(v[next_even], v[next_odd--]);
}
else {
next_even++;
}
}
}

int main()
{
vector<int> v = { 1, 2, 3 , 4, 5, 6, 7};
evenOdd(v);
for (auto i = v.begin(); i != v.end(); i++)
cout << *i << " ";
return 0;
}

Comments

Popular posts from this blog

Clear right most set bit of an integer n

Swap bits at ith and jth position of integer n

Toggle the bit at Kth position of integer n