Go-插入排序
新手,如有错误,请指证,感谢🙏。求轻喷~~
package main
import (
"fmt"
)
// 插入排序法思路:将要排序的元素插入到已经 假定排序号的数组的指定位置。
// 实现思路:
// * 区分 哪部分是已经排序好的
// * 哪部分是没有排序的
// * 找到其中一个需要排序的元素
// * 这个元素 就是从第二个元素开始,到最后一个元素都是这个需要排序的元素
// * 利用循环就可以标志出来
// * i循环控制 每次需要插入的元素,一旦需要插入的元素控制好了,
// * 间接已经将数组分成了2部分,下标小于当前的(左边的),是排序好的序列
func main() {
// 定义数据源
mySlice := []int{1,43,54,62,21,66,32,78,36,76,39}
sliceLen := len(mySlice)
for i:=1; i<sliceLen;i++{
// 获得当前需要比较的元素值。
tmp := mySlice[i]
// 内层循环控制 比较 并 插入
for j:=i-1;j>=0;j--{
// mySlice[i] 需要插入的元素
// mySlice[j] 需要比较的元素
if tmp < mySlice[j] {
// 如果插入的元素小,交换位置。将后边的元素与前边的元素互换
mySlice[j+1] = mySlice[j]
// 将前面的数设置为当前需要交换的数
mySlice[j] = tmp
} else {
// 由于是已经排序好的,则不需要再次比较。
break
}
}
}
fmt.Println(mySlice)
}

浙公网安备 33010602011771号