//插入排序
package alg
func Insertion(arr []int) []int {
len := len(arr)
if len <= 1 {
return arr;
}
for i := 1; i < len; i++ {
//获取当前需要插入已排序区域的元素值
val := arr[i]
j := i - 1
for ; j >= 0; j-- {
if arr[j] > val {
//移动数据
arr[j+1] = arr[j]
} else {
//如果arr[j]小于arr[i],则对已排序区无需再排序
break;
}
}
//插入排序 第一位
arr[j+1] = val
}
return arr
}
来源:oschina
链接:https://my.oschina.net/hackdebug/blog/3158511