#include <stdio.h>
void swap(int* a, int* b) {
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void move_negative_to_beginning(int arr[], int size) {
int beginning_index = 0;
for (int i = 0; i < size; i++) {
if (arr[i] < 0) {
swap(&arr[i], &arr[beginning_index]);
beginning_index++;
}
}
}
int main()
{
int arr[] = { -1, 8, -6, 21, -3, 4, -2, 7, 15, -30, -40, 9 };
int size = sizeof(arr) / sizeof(arr[0]);
move_negative_to_beginning(arr, size);
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
return 0;
}
/*
run:
-1 -6 -3 -2 -30 -40 21 7 15 8 4 9
*/