selection sort(选择排序) 是一种很常见的O(n^2)的排序方法。下面给出算法的伪码及时间复杂度分析
伪代码:
如上图所示,伪码的每一步后面都有一个基本运算执行次数的统计。步骤6-7的执行次数与输入的数组有关。
可以证明:
当输入数组为逆序的时候,为worst case,k =
当输入数组为顺序的时候,为best case,k = 0
假设这10个步骤,每个步骤执行的一次基本运算花费的时间为 C1-C10
则在worst case 和 best case 下,算法的实际执行时间为:
worst case:
best case:
最坏的算法复杂度为Θ(n2)
References:
[1] Thomas H.Cormen Charles E. Leiserson Ronald L.Rivest Clifford Stein 《Introduction to Algorithms Second Edition》