排序算法——直接插入排序
1、算法介绍
(1)待排序序列的第一个元素当做已排序序列,第二个元素至最后一个元素当做未排序序列
(2)遍历未排序序列,将元素与已排序序列比较,插入到已排序序列中
(3)若未排序的元素与已排序序列中某元素相等,则将未排序的该元素插入已排序相等元素后面
2、代码实现
2.1、golang
package main import ( "fmt" ) func main() { slice := []int{5, 3, 12, 54, 23, 12, 6, 9, 19} SortInsert(slice) fmt.Println(slice) } //直接插入排序 func SortInsert(slice []int) { n := len(slice) for i := 1; i < n; i++ { for j := i; j >= 1 && slice[j-1] > slice[j]; j-- { slice[j], slice[j-1] = slice[j-1], slice[j] } } }
2.2、python3
# 直接插入排序 def sort_insert(arr): n = len(arr) for i in range(1, n): for j in range(i, 0, -1): if arr[j - 1] > arr[j]: arr[j], arr[j - 1] = arr[j - 1], arr[j] else: break if __name__ == '__main__': arr = [5, 3, 12, 54, 23, 12, 6, 9, 19] sort_insert(arr) print(arr)