/* * selection_lib.c * * See selection_lib.h * * This is an example of how to split * a C program into several pieces. * */ #include /* angle brackets : system folders */ #include "selection_lib.h" /* quotes : local folders */ void print_array(int array[], int size){ int i; printf("["); for (i = 0; i < size; i++){ printf("%i, ", array[i]); } printf("]\n"); } void selection_sort(int array[], int array_length){ int i, big; printf("in selection_sort length=%i ", array_length); print_array(array, array_length); // Find maximal element of array big = array[array_length - 1]; for (i = 0; i < array_length - 1; i++){ if (array[i] > big){ // swap last one with this one printf(" at i=%i swapping %i with %i \n", i, array[i], big); array[array_length - 1] = array[i]; array[i] = big; big = array[array_length - 1]; } } // Recursion! (Yeah!!) array_length -= 1; if (array_length > 1){ selection_sort(array, array_length); } }