#include <stdio.h>
void print_array(int arr[], int size);
void bubbleSort(int arr[], int len);
int main(void)
{
int arr[] = {1, 7, 4, 2, 3, 5, 8, 6};
int size = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, size);
print_array(arr, size);
return 0;
}
void bubbleSort(int arr[], int size) {
int tmp, swap;
for (int i = 0; i < size; i++) {
swap = 0;
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
swap = 1;
}
}
// If the swap is 0 we didn't swap nothing = the array is sorted - we stop the loops
if (swap == 0) break;
}
}
void print_array(int arr[], int size) {
int i;
for (i = 0; i < size; i++) {
printf("%2d", arr[i]);
}
}
/*
run:
1 2 3 4 5 6 7 8
*/