package main
import "fmt"
var (
x =[]int{ 1,4,5,3,9,6,2,41,23,25,312,343,212,453,213,442}
y =[]int{ 1,4,3,2,6,5,19,234,44,22,33,22,31,54}
z =[]int{ 1,4,5,3,9,6,11,11,2,4,6}
)
//选择排序实现思路:1.遍历数组/切片,找到最小数的位置
//2.最小数与第0个元素交换位置,此时最小数已归位到第0位
//3.从第1位开始第二次遍历,找到剩余最小的数字所在位置,与第1位交换
//4.重复下去,直至数组排序完成
func main(){
selection_sort(x)
selection_sort(y)
selection_sort(z)
fmt.Println(x)
fmt.Println(y)
fmt.Println(z)
}
func selection_sort(num []int){
// min为最小数位置
var min int
for i,_:=range num{
min=i
j:=i+1
for ;j<len(num);j++{
if num[min]> num[j]{
min=j
}
if j==len(num)-1{
if i==min{
continue
}
Swap(num,i,min)
}
}
}
}
func Swap(num []int,i,j int){
num[i],num[j] =num[j],num[i]
}