/** * array_utils.c - A variety of utilities for working with arrays */ #include #include #include "array_utils.h" // +-----------+------------------------------------------------------ // | Functions | // +-----------+ int index_of (int a[], int limit, int value) { int i; for (i = 0; i < limit; i++) if (a[i] == value) return i; return -1; } // index_of int index_of_largest (int values[], int limit) { return index_of (values, limit, largest (values, limit)); } // index_of_largest int largest (int a[], int limit) { int i; int guess = a[0]; for (i = 1; i < limit; i++) if (a[i] > guess) guess = a[i]; return guess; } // largest void selection_sort (int values[], int len) { int i; for (i = len-1; i > 0; i--) { swap (values, i, index_of_largest (values, i+1)); } } // selection_sort void swap (int a[], int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } // swap