package mainimport (\"fmt\"\"math/rand\"\"time\")func selectSort(data []int) {size := len(data)var index int//外层循环,每次得到 data[i] ~ data[size-1] 之间的最小值,存放在 data[i]for i := 0; i < size-1; i++ {index = i/*内存循环,暂且将data[i]当做 data[i] ~ data[size-1] 之间的最小值使用index记录这个最小值的标号依次使用data[index] 和 data[i+1] ~ data[size-1] 之间的所有元素作比较如果 data[index] > data[j],则 index = j一趟内存循环执行完,index 中就已经记录了 data[i] ~ data[size-1] 之间最小元素的标号*/for j := i + 1; j < size; j++ {if data[index] > data[j] {index = j}}//将data[i] 与 data[index] 交换,从而将 data[i] ~ data[size-1] 中的最小值存放在 data[i] 中data[i], data[index] = data[index], data[i]}}func main() {rand.Seed(time.Now().UnixNano() / 1000)arr := [100]int{}for i := 0; i < 100; i++ {arr[i] = rand.Intn(1000)}fmt.Println(arr)selectSort(arr[:])fmt.Println(arr)}