关于希尔排序的知识点讲解在我的博客算法分类中算法插入排序之折半插入排序详解(PHP代码实现)这里就不再重复讲解了,
这里主要为go语言实现其算法。
func ShellSort(nums []int) []int{
//外层步长控制
for step := len(nums) / 2; step > 0; step /= 2 {
//开始插入排序
for i := step; i < len(nums); i+=step {
//满足条件则插入
for j := i - step; j >= 0 && nums[j+step] < nums[j]; j -= step {
nums[j], nums[j+step] = nums[j+step], nums[j]
}
}
}
return nums
}
所谓勇者,是心有所惧,唯自知尔!