Selection Sort in Swift

Below is an example of the Selection Sort algorithm in Swift. See the Selection Sort page for more information and implementations.


selection-sort in Swift

func selectionSort(array: inout [Int]) {
    // step 1: loop from the beginning of the array to the second to last item
    for currentIndex in 0..<(array.count - 1) {
        // step 2: save a copy of the currentIndex
        var minIndex = currentIndex;
        // step 3: loop through all indexes that proceed the currentIndex
        for i in (currentIndex + 1)..<array.count {
            // step 4:  if the value of the index of the current loop is less
            //          than the value of the item at minIndex, update minIndex
            //          with the new lowest value index */
            if (array[i] < array[minIndex]) {
                // update minIndex with the new lowest value index
                minIndex = i;
            }
        }
        // step 5: if minIndex has been updated, swap the values at minIndex and currentIndex
        if (minIndex != currentIndex) {
            let temp = array[currentIndex];
            array[currentIndex] = array[minIndex];
            array[minIndex] = temp;
        }
    }
}

var array = [12, 11, 15, 10, 9, 1, 2, 3, 13, 14, 4, 5, 6, 7, 8]
selectionSort(array: &array)
print(array)

Discussion