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) }