前言
* 简单选择排序(直接选择排序)
* 基本思想:数组分成有序区和无序区,初始时整个数组都是无序区,
* 然后每次从无序区选一个最小的元素直接放到有序区的最后,重复这样的操作,
* 直到整个数组变成有序区。
func selectSort(_ arr: [Int]) ->[Int] {
var arr = arr
var min = 0
// 只需要n-1趟
for i in 0 ..< arr.count - 1 {
min = i
// 从第n+1趟起始找到末尾
for j in i + 1 ..< arr.count {
// 找到比min位置更小的,就更新这一趟所找到的最小值的位置
if arr[j] < arr[min] {
min = j
}
print("i=\(i)--- j= \(j) --- \(arr)")
}
// 如果min与i不相等,说明有比i位置更小的,所以需要交换
if min != i {
let temp = arr[i]
arr[i] = arr[min]
arr[min] = temp
}
}
return arr
}
引用
屏幕快照 2017-05-08 下午5.59.48.png
打印结果
屏幕快照 2017-05-08 下午6.02.13.png