Go语言数据结构之插入排序示例详解
作者:宇宙之一粟 时间:2024-05-05 09:34:32
插入排序
插入排序,英文名(insertion sort)是一种简单且有效的比较排序算法。
思想: 在每次迭代过程中算法随机地从输入序列中移除一个元素,并将改元素插入待排序序列的正确位置。重复该过程,直到所有输入元素都被选择一次,排序结束。
插入排序有点像小时候我们抓扑克牌的方式,如果抓起一张牌,我们放在手里;抓起第二张的时候,会跟手里的第一张牌进行比较,比手里的第一张牌小放在左边,否则,放在右边。
因此,对所有的牌重复这样的操作,所以每一次都是插入最正确的排序顺序,直到牌抓完为止。
动画演示
假设我们需要从小到大进行排序,动画演示如下:
Go 代码实现
package main
import "fmt"
func main() {
arrays := []int{6, 2, 5, 8, 9, 3, 1}
length := len(arrays)
insertionSort(arrays, length)
for i := 0; i < length; i++ {
fmt.Printf("%d ", arrays[i])
}
}
func insertionSort(unsorted []int, length int) {
for i := 0; i < length; i++ {
var insertElement = unsorted[i]
var insertPosition = i
for j := insertPosition - 1; j >= 0; j-- {
if insertElement < unsorted[j] {
unsorted[j+1] = unsorted[j]
insertPosition--
}
}
unsorted[insertPosition] = insertElement
}
}
运行结果:
[Running] go run "e:\Coding Workspaces\LearningGoTheEasiestWay\Go 数据结构\main.go"
1 2 3 5 6 8 9
来源:https://juejin.cn/post/7044021081933348894
标签:Go,数据结构,插入排序
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
git使用.gitignore设置不生效或不起作用问题的解决方法
2021-06-09 17:17:07
给验证码增加干扰的杂点
2008-05-16 11:34:00
使用Python画出小人发射爱心的代码
2022-08-07 01:52:16
![](https://img.aspxhome.com/file/2023/3/103513_0s.jpg)
JS+CSS实现仿支付宝菜单选中效果代码
2023-10-05 07:29:01
![](https://img.aspxhome.com/file/2023/2/56352_0s.png)
用python写asp详细讲解
2022-02-26 13:21:36
![](https://img.aspxhome.com/file/2023/5/78535_0s.jpg)
Python之os模块案例详解
2021-06-18 15:09:38
![](https://img.aspxhome.com/file/2023/6/90376_0s.png)
Python 快速验证代理IP是否有效的方法实现
2022-08-12 07:22:14
Python 处理带有 \\u 的字符串操作
2022-01-24 03:43:13
![](https://img.aspxhome.com/file/2023/7/79397_0s.jpg)
python压缩和解压缩模块之zlib的用法
2023-09-19 08:32:07
![](https://img.aspxhome.com/file/2023/5/95905_0s.png)
NLTK 3.2.4 环境搭建教程
2023-09-14 03:47:27
![](https://img.aspxhome.com/file/2023/8/68278_0s.png)
在Python 3中实现类型检查器的简单方法
2022-08-13 13:30:30
Linux下mysql 8.0安装教程
2024-01-15 18:21:49
![](https://img.aspxhome.com/file/2023/5/68595_0s.jpg)
Python colorama 彩色打印实现代码
2022-10-03 22:32:28
![](https://img.aspxhome.com/file/2023/9/126919_0s.png)
koa+mongoose实现简单增删改查接口的示例代码
2024-05-13 10:04:56
![](https://img.aspxhome.com/file/2023/4/125844_0s.png)
pycharm全局搜索的具体步骤
2023-11-04 17:31:07
![](https://img.aspxhome.com/file/2023/7/127807_0s.jpg)
解析mysql 5.5字符集问题
2024-01-13 09:01:54
Dreamweaver使用技巧之如何巧用DW4文件库更新网站
2010-10-20 20:07:00
![](https://img.aspxhome.com/file/UploadPic/20072/20072311301764s.gif)
javascript 获取链接文件地址中第一个斜线内的正则表达式
2024-02-25 07:53:28
图文详解laravel多对多关联模型
2023-06-12 22:21:34
![](https://img.aspxhome.com/file/2023/4/55544_0s.png)
Rs.Open参数说明
2008-05-12 22:43:00