Record

机会是留给有准备的人

插入排序之golang实现

    func main() {
    
        arr := []int{19, 7, 2, 9, 4, 12, 43, 32, 14}
        insertSort(arr)
    
    }
    
    //插入排序
    func insertSort(arr []int) {
    
        //从第2个元素开始取数据,因为第一个不用排
        for i := 1; i < len(arr); i++ {
    
            temp := arr[i] //取出当前位置i的元素,其中i-1已经排好序
    
            j := 0
            //temp与前面已排好的元素逐一比较,如果比她大就往后移位,再继续比较,直到比temp小的元素前停下
            for j = i; j > 0 && temp < arr[j-1]; j-- {
                arr[j] = arr[j-1]
                fmt.Println(j)
            }
    
            arr[j] = temp //合适位置插入
    
            fmt.Println("i =", i, arr)
    
        }
    
    }