diff --git a/Array/alternatePosneg.cpp b/Array/alternatePosneg.cpp new file mode 100644 index 0000000..f0faed9 --- /dev/null +++ b/Array/alternatePosneg.cpp @@ -0,0 +1,88 @@ +#include +using namespace std; + +void solve() +{ + cout << "Inside solve" << endl; + vector v{-5, -2, 5, 2, 4, 7, -8,13,14,-15,-17,-19,-10,-57,-56}; + int n = v.size(); + + /*----------------O(n^2) approach-------------*/ + + // for (int i = 1; i < n; i++) + // { + // if (v[i] * v[i - 1] < 0) + // continue; + // else + // { + // int j; + // for (j = i + 1; j < n; j++) + // { + // if (v[i] * v[j] < 0) + // { + // swap(v[i], v[j]); + // break; + // } + // } + // if (j == n) + // break; + // } + // } + + /*-------------------------------------------*/ + + + /*----------------O(nlogn) approach-------------*/ + + // sort(v.begin(), v.end()); + + /*-------------------------------------------*/ + + /*----------------O(n) approach-------------*/ + int left=0,right=n-1; + while(left < right){ + while(left < n && v[left] < 0) + left++; + while(right >= 0 && v[right] >= 0) + right--; + if(left