操操操

希尔排序golang版本

2023-08-20
1分钟阅读时长

希尔排序golang版本

有点类似于插排,但是涉及到步长的运算,所以让整个理解变困难。

func ShellSort(nums []int){
	n := len(nums)
	for gap := n /2 ; gap >0;gap /= 2{
		for i := 0;i<gap;i++{
			for j := i+gap;j<n;j+=gap{
				key := nums[j]
				k := j - gap
				if k >=0 && nums[k] > key{
					nums[k+gap] = nums[k]
					k -= gap
				}
			}
		}
	}
}
Avatar

Aisen

Be water,my friend.