/**
* 工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,
* 存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,
* 然后放到已排序序列的末尾
*/
object SeletionSort extends App {
var list: Array[Int] = Array(2, 45, 1, 4, 8, 2, 5, 8, 35, 67, 3, 9, 3, 8, 4, 7, 34);
for (i <- 0 until list.length) { //已有i个已经排好序
var currentMinIndex = i
for (j <- i until list.length) { //把最小的选出来
if (list(currentMinIndex) > list(j)) {
currentMinIndex = j
}
}
if (currentMinIndex != i) { //把学出来最小的放在已排好序的末尾
var tmp = list(i)
list(i) = list(currentMinIndex)
list(currentMinIndex) = tmp
}
}
list.foreach(println)
}