知识内容详见《大话数据结构》P384
代码实例:
package main
import (
"math/rand"
"time"
"fmt"
)
/*
思想:先设定第0个元素为最小值,从第0个元素到末尾,找出最小值,交换最小值与第0个元素的位置。
之后从第1个元素开始,再次执行以上操作。直到倒数第二个元素执行完毕。
*/
func SelecetSort(a []int) {
n := len(a)
for i := 0; i < n-1; i++ {
min := i
for j := i; j < n; j++ {
if a[min] > a[j] {
min = j
}
}
a[i], a[min] = a[min], a[i]
}
fmt.Println("通过选择排序之后的切片为:")
fmt.Println(a)
}
func main() {
rand.Seed(time.Now().UnixNano())
arr := make([]int, 0)
for i := 0; i < 10; i++ {
arr = append(arr, rand.Intn(1000))
}
fmt.Println("排序之前的切片为:")
fmt.Println(arr)
SelecetSort(arr)
}