#include <iostream>
void swap(int arr[], int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
void rearrangeArray(int arr[], int size) {
for (int i = 1; i < size; i += 2) {
// previous element is greater than current element
if (arr[i - 1] > arr[i]) {
swap(arr, i - 1, i);
}
// next element is greater than current element
if (i + 1 < size && arr[i + 1] > arr[i]) {
swap(arr, i + 1, i);
}
}
}
int main(void)
{
int arr[] = { 1, 3, 6, 5, 4, 2, 9, 8, 7 };
int size = sizeof(arr) / sizeof(arr[0]);
rearrangeArray(arr, size);
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
}
/*
run:
1 6 3 5 2 9 4 8 7
*/