美文网首页
Select Sort. Θ(n^2)

Select Sort. Θ(n^2)

作者: R0b1n_L33 | 来源:发表于2017-09-19 10:30 被阅读14次

Consider sorting n numbers stored in array A by first finding the smallest element of A and exchanging it with the element in A[1] . Then find the second smallest element of A, and exchange it with A[2] . Continue in this manner for the first n 1 elements of A. Write pseudocode for this algorithm, which is known as selection sort. What loop invariant does this algorithm maintain? Why does it need to run for only the first n 1 elements, rather than for all n elements? Give the best-case and worst-case running times of selection sort in Θ notation.

///Select Sort. Θ(n^2)
func selectSort<T: Comparable>(_ array: inout [T]) {
    //Already sorted
    guard array.count > 1 else { return }
    
    //Compare and swap
    for i in 0..<array.count-1 {
        var minElementIndex = i
        for j in i+1..<array.count {
            minElementIndex = array[minElementIndex] <= array[j] ? minElementIndex : j
        }
        if i != minElementIndex { swap(&array[minElementIndex], &array[i]) }
    }
}

var s = try Int.randomArray()
selectSort(&s)

相关文章

网友评论

      本文标题:Select Sort. Θ(n^2)

      本文链接:https://www.haomeiwen.com/subject/vwcwsxtx.html