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