Go-选择排序
新手,如有错误,请指证,感谢🙏。求轻喷~~
package main
import (
"fmt"
)
// 选择排序
// * 选择排序法思路:每次选择一个相应的元素,然后将其放到指定的位置
// * 实现思路:双重循环完成,外层控制轮数,当前的最小值。内层控制的比较次数
func main(){
// 定义数据源
mySlice := []int{1,43,54,62,21,66,32,78,36,76,39}
// 计算切片长度
length:=len(mySlice)
// i:当前最小值的位置,需要参与比较的元素
for i:=0;i<length-1;i++{
// 先假设最小值的位置
p := i
// j:当前都需要和哪些元素比较,i后边的
for j:=i+1;j<length;j++{
// mySlice[p]是当前已知的最小值
if mySlice[p]>mySlice[j] {
// 比较,发现更小的,记录下最小值的位置;并且在西祠比较时,应采用已知的最小值进行比较
p = j
}
}
// 已经确定了当前的最小值,保存到p中。
// 如果发现最小值的位置与当前 假设的位置i不同,则位置互换
if p != i {
tmp := mySlice[p]
mySlice[p] = mySlice[i]
mySlice[i] = tmp
}
//fmt.Println(mySlice)
}
fmt.Println(mySlice)
}

浙公网安备 33010602011771号