选择排序的主要优点与数据移动有关,如果某个元素位于正确的最终位置上,则他不会移动。选择排序每次交换一对元素,它们当中至少有一个将被移到最终的位置上,因此对n个元素的表进行排序总共进行至多(n-1)次交换。在所有的完钱依靠交换去移动元素的排序方法中,选择排序算是非常好的一种。
方案:正常原地算法
override func sortAction() {
if arrayList.count <= 1 { return }
let end = arrayList.count
for i in 0..<end {
var min = i
for begin in i..<end-1 {
if cmpIndex(min, begin+1) > 0 {
min = begin+1
}
}
swap(i, min)
}
}