From f7c8342648a9ab6247030457e2a4faae72a93036 Mon Sep 17 00:00:00 2001 From: Vaishnavi955 <143393124+Vaishnavi955@users.noreply.github.com> Date: Sat, 7 Oct 2023 23:43:58 +0530 Subject: [PATCH] Create vaishnavi.cpp --- .../vaishnavi.cpp | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Rearrange the array in alternating positive and negative items/vaishnavi.cpp diff --git a/Rearrange the array in alternating positive and negative items/vaishnavi.cpp b/Rearrange the array in alternating positive and negative items/vaishnavi.cpp new file mode 100644 index 0000000..d18553e --- /dev/null +++ b/Rearrange the array in alternating positive and negative items/vaishnavi.cpp @@ -0,0 +1,49 @@ +#include +#include + +using namespace std; + +void rearrangeAlternating(vector& arr) { + int n = arr.size(); + vector pos, neg; + + for (int i = 0; i < n; ++i) { + if (arr[i] > 0) + pos.push_back(arr[i]); + else + neg.push_back(arr[i]); + } + + int i = 0, j = 0, k = 0; + + while (i < pos.size() && j < neg.size()) { + arr[k] = pos[i]; + arr[k + 1] = neg[j]; + ++i; + ++j; + k += 2; + } + + while (i < pos.size()) { + arr[k] = pos[i]; + ++i; + k += 2; + } + + while (j < neg.size()) { + arr[k] = neg[j]; + ++j; + k += 2; + } +} + +int main() { + vector arr = {-1, 2, -3, 4, 5, -6, 7, 8}; + rearrangeAlternating(arr); + + for (int num : arr) { + cout << num << " "; + } + + return 0; +}