博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[golang] 数据结构-直接插入排序
阅读量:6430 次
发布时间:2019-06-23

本文共 673 字,大约阅读时间需要 2 分钟。

原理

直接插入排序,也是一种非常简单的排序算法。
第一轮先从第二个元素开始,和第一个比较,如果较小就交换位置,本轮结束。第二轮从第三个元素开始,先与第二个比较,如果较小就与第二个交换,交换后再于第一个比较。如此循环直至最后一个元素完成比较逻辑。

复杂度

最好的情况下,直接插入排序只需进行n-1次比较,0次的交换。平均下来时间复杂度为 O(n^2)。
由于是每个元素逐个与有序的队列进行比较,所以不会出现相同数值的元素在排序完成后交换位置。所以直接插入排序是种稳定的排序算法。

代码

package mainimport (    "fmt"    "math/rand")func main() {    var length = 10    var tree []int    for i := 0; i < length; i++ {        tree = append(tree, int(rand.Intn(1000)))    }    fmt.Println(tree)    for i := 1; i < length; i++ {        for j := i; j > 0 && tree[j] < tree[j-1]; j-- {            tree[j], tree[j-1] = tree[j-1], tree[j]        }        fmt.Println(tree)    }}

运行结果

[golang] 数据结构-直接插入排序

转载于:https://blog.51cto.com/13022101/2148154

你可能感兴趣的文章
反向教学系列之——Django入门(一)【不需知道web框架】
查看>>
Linux学习-标准输入输出
查看>>
CentOS 7 配置IP
查看>>
文本处理工具grep及正则表达式
查看>>
Intel VT-x处于禁用状态
查看>>
用什么软件可以修改PDF文件,软件的操作方法
查看>>
Windows下安装Django-使用Pycharm创建项目
查看>>
如何精简企业主数据“裹脚布”
查看>>
Pointer on C
查看>>
& 号和管道符号(|)在不同场景下的使用方法
查看>>
curl 浏览器模拟请求实战
查看>>
多个VLAN中的vrrp备份组配置举例
查看>>
运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(六)
查看>>
interlib在tomcat7.0的安装
查看>>
水晶报表在大型WEB内部管理系统里的滑铁卢
查看>>
我的友情链接
查看>>
Git学习
查看>>
trove 基于 centos7 制作 mysql5.6 镜像
查看>>
结合i节点和数据块分析linux中软链接和硬链接的区别
查看>>
Heartbeat crm的配置
查看>>