使用 Go 實現「插入排序」

做法

把未排序的元素,在已排序的陣列裡頭,從後向前比對,找到相應的位置後插入。

實作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
func InsertionSort(items []int) []int {
// 從第二個元素開始疊代
for i := 1; i < len(items); i++ {
// 記錄當前元素
temp := items[i]

// 從後向前比對
j := i - 1
for ; j >= 0 && temp < items[j]; j-- {
// 將已排序的陣列中的元素向後複製
items[j+1] = items[j]
}

// 將當前元素插入
items[j+1] = temp
}

return items
}

程式碼