Selection sort

by mschock

JavaScript

function selectionSort(array) {
	for (var i = 0; i < array.length; i++) {
    	swap(array, i, indexOfMinimum(array, i));
    }
}

function swap(array, firstIndex, secondIndex) {
    var temp = array[firstIndex];
    array[firstIndex] = array[secondIndex];
    array[secondIndex] = temp;
}

function indexOfMinimum(array, startIndex) {
    var minValue = array[startIndex],
        minIndex = startIndex;

    for (var i = minIndex + 1; i < array.length; i++) {
        if (array[i] < minValue) {
            minIndex = i;
            minValue = array[i];
        }
    }
  
    return minIndex;
}