package main
import "fmt"
func shellsortmax(arr []int,start int,gap int){
length:=len(arr)
for i:=start+gap;i<length;i+=gap{
backup:=arr[i]
j:=i-gap
for j >= 0 && backup < arr[j]{
arr[j+gap]=arr[j]
j-=gap
}
arr[j+gap]=backup
}
}
func shellsort(arr []int)([]int) {
var length = len(arr)
if length <= 1 {
return arr
}
gap:=length/2
for gap > 0{
for i:=0;i<gap;i++{
shellsortmax(arr,i,gap)
}
gap--
}
return arr
}
func main(){
needsortslice := []int{3,1,8,6,5,4,9,7,10,12,0}
fmt.Println(shellsort(needsortslice))
}
go(希尔排序)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 数据结构和算法学习汇总[https://www.jianshu.com/p/72b20d1e06e6] 本文主要讲...
- 选择排序 对于任何输入,时间为O(n*n); 冒泡排序 最优(对于升序的数组,因为加入了一个跳出判断):O(n),...
- 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序...
- 冒泡排序、插入排序、选择排序、希尔排序 时间复杂度 O(N²) 稳定性: 这个概念是说,如果待排序的序列中存在值相...
- 总的来说排序性能:希尔排序算法>插入排序>选择排序>冒泡排序 希尔排序算法代码 冒泡排序算法代码 选择排序 插入排...