#include <stdio.h>
#include <stdbool.h>
void swap(int* x, int* y) {
int tmp = *x;
*x = *y;
*y = tmp;
}
void SortArrayIntoZigZagPattern(int arr[], int size) {
bool small = true;
for (int i = 0; i <= size - 2; i++) {
if (small) {
if (arr[i] > arr[i + 1])
swap(&arr[i], &arr[i + 1]);
}
else {
if (arr[i] < arr[i + 1])
swap(&arr[i], &arr[i + 1]);
}
small = !small;
}
}
int main()
{
// a < b > c < d > e < f > g...
// 3 < 5 > 1 < 9 > 6 < 7 > 2 < 4
int arr[] = { 3, 5, 1, 7, 9, 6, 4, 2 };
int size = sizeof(arr) / sizeof(arr[0]);
SortArrayIntoZigZagPattern(arr, size);
for (int i = 0; i < size; i++)
printf("%2d", arr[i]);
return 0;
}
/*
run:
3 5 1 9 6 7 2 4
*/