- Rearrange array in-place to alternate positive and negative
arr = [1,2,-1,-2,3,4,-5,-4]
print("Original:", arr)
j = 0
for i in range(len(arr)):
if arr[i] < 0:
arr[i], arr[j] = arr[j], arr[i]
j+=1
neg = 0
pos = j
while pos < len(arr) and neg < pos and arr[neg] < 0:
arr[neg], arr[pos] = arr[pos], arr[neg]
neg += 2
pos += 1
print("Altered: ", arr)
#include <iostream>
using namespace std;
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int arr[] = {1, 2, -1, -2, 3, 4, -5, -4};
int n = sizeof(arr) / sizeof(arr[0]);
int j = 0;
for (int i; i < n; i++) {
if (arr[i] < 0) {
swap(arr[i], arr[j]);
j++;
}
}
for (int i; i < n; i++) {
cout << arr[i] << " ";
}
}