go-希尔排序算法
package main import "fmt" func main() { var arr = []int{9, 7, 6, 8, 4, 1, 5, 2, 3} fmt.Printf("arr: %v\n", arr) var gap = 1 for { if gap >= (len(arr))/3 { break } gap = gap*3 + 1 } fmt.Printf("gap: %v\n", gap) for gap := gap; gap > 0; gap = (gap - 1) / 3 { for i := gap; i < len(arr); i++ { for j := i; j > gap-1 && arr[j] < arr[j-gap]; j -= gap { swap(arr, j, j-gap) } } fmt....