7°

golang实现插入排序算法

//插入排序
package alg

func Insertion(arr []int) []int { len := len(arr) if len <= 1 { return arr; }

for i := 1; i &lt; len; i++ {
    //获取当前需要插入已排序区域的元素值
    val := arr[i]
    j := i - 1

    for ; j &gt;= 0; j-- {
        if arr[j] &gt; val {
            //移动数据
            arr[j+1] = arr[j]
        } else {
            //如果arr[j]小于arr[i],则对已排序区无需再排序
            break;
        }
    }

    //插入排序 第一位
    arr[j+1] = val
}

return arr

}

本文由【山人有妙计】发布于开源中国,原文链接:https://my.oschina.net/hackdebug/blog/3158511

全部评论: 0

    我有话说: