Insertion sort using go

This commit is contained in:
machangxin
2022-12-12 18:32:58 +08:00
parent a58235cef9
commit 51a6f374a7
3 changed files with 51 additions and 0 deletions

View File

@@ -79,6 +79,20 @@ comments: true
=== "Go"
```go title="insertion_sort.go"
/* 插入排序 */
func insertionSort(nums []int) {
// 外循环:待排序元素数量为 n-1, n-2, ..., 1
for i := 1; i < len(nums); i++ {
base := nums[i]
j := i - 1
// 内循环:将 base 插入到左边的正确位置
for j >= 0 && nums[j] > base {
nums[j+1] = nums[j] // 1. 将 nums[j] 向右移动一位
j--
}
nums[j+1] = base // 2. 将 base 赋值到正确位置
}
}
```