// InsertSort 插入排序 // 思路: // 1. 第一个元素默认是已经排好序的 // 2. 从第二个元素开始,依次比较前面一个元素中,如果小于则交换位置 // 插入排序思路: 将一个元素插入到已经排好序的序列中 // 插入排序对比冒泡排序 // 插入排序是将元素在已经排好序的元素中交换位置 // 冒泡排序是在未排好序的元素中交换我位置 func InsertSort(data []int) { // i是添加新的排序元素 for i := 0; i < len(data); i ++ { tmp := data[i] for j := i; j >= 0 ; j -- { // 放到第一个 if j == 0 { data[0] = tmp break } if data[j-1] > tmp { data[j] = data[j-1] } else { // 放到最后一个 data[j] = tmp break } } } }