希尔排序(Go语言)

简介: func ShellSort(num []int) { //increment相隔数量 for increment:=len(num)/2;increment>0 ;increment/=2 { //i序号较大的数组下标,i ,j进行比较 ...
func ShellSort(num []int) {

    //increment相隔数量
    for increment:=len(num)/2;increment>0 ;increment/=2 {
        //i序号较大的数组下标,i ,j进行比较
        
        for i := increment; i < len(num); i++ {
            //进行交换
            temp:=num[i]
            //按照increment,数组从j到0进行交换比较
            for j:= i - increment; j >= 0; j -= increment {
                if temp < num[j] {
                    num[j+increment]=num[j]
                    num[j]=temp
                    temp=num[j]
                }else {//由于数组前面按照increment已经排好序,如果temp>num[j],则不必继续比较交换下去
                    break
                }
            }

        }

    }

}

 

目录
相关文章
|
2天前
|
Go 索引
Go 语言切片(Slice)
Go 语言切片(Slice)
7 1
|
2天前
|
存储 Go Python
Go 语言结构体
Go 语言结构体
6 0
|
2天前
|
存储 Go
Go 语言指针
Go 语言指针
6 0
|
2天前
|
JSON Java Go
使用go语言中的内置库调试性能
【5月更文挑战第21天】本文介绍Go 语言提供了内置的 expvar 模块来输出度量数据,帮助定位性能瓶颈。与 pprof 不同,expvar 专注于应用的宏观状态,通过 HTTP 接口 `/debug/vars` 提供标准的 JSON 格式数据,包括自定义度量和内存统计等。通过 expvar,开发者可以轻松监控应用状态,如消息处理速率、内存使用等,而无需像 C++ 或 Java 那样手动实现。
18 0
使用go语言中的内置库调试性能
|
3天前
|
编译器 Go 索引
Go 语言数组
Go 语言数组
8 1
|
3天前
|
Go CDN
Go 语言变量作用域
Go 语言变量作用域
13 4
|
3天前
|
编译器 Go
Go 语言函数
Go 语言函数
13 7
|
3天前
|
自然语言处理 算法 关系型数据库
再谈go语言中字符转换效率问题
【5月更文挑战第20天】本文讨论了Go语言中类型转换的效率,特别是`byte`、`rune`和`string`之间的转换。`性能测试显示,从`[]byte`到`string`的转换,新版与旧版性能相当;但从`string`到`[]byte`,旧版快于新版两倍。此外,文章提到了Unicode校对算法(UCA)的版本差异可能带来的排序和大小写转换不一致问题,这在多语言环境中需要注意。
18 1
再谈go语言中字符转换效率问题
|
3天前
|
编译器 Go 索引
浅谈go语言中的符文字符处理工具
【5月更文挑战第20天】本文简述了Go 1.20之后的rune符文处理工具和函数,`unsafe`包新增了SliceData、String和StringData函数,支持直接将slice转换为array,明确了数组和结构体比较顺序。
18 1
浅谈go语言中的符文字符处理工具
|
4天前
|
Go
Go 语言循环语句
Go 语言循环语句
10 0