Go语言数据结构之插入排序示例详解

作者:宇宙之一粟 时间:2024-05-05 09:34:32 

插入排序

插入排序,英文名(insertion sort)是一种简单且有效的比较排序算法。

思想: 在每次迭代过程中算法随机地从输入序列中移除一个元素,并将改元素插入待排序序列的正确位置。重复该过程,直到所有输入元素都被选择一次,排序结束。

插入排序有点像小时候我们抓扑克牌的方式,如果抓起一张牌,我们放在手里;抓起第二张的时候,会跟手里的第一张牌进行比较,比手里的第一张牌小放在左边,否则,放在右边。

因此,对所有的牌重复这样的操作,所以每一次都是插入最正确的排序顺序,直到牌抓完为止。

Go语言数据结构之插入排序示例详解

动画演示

假设我们需要从小到大进行排序,动画演示如下:

Go语言数据结构之插入排序示例详解

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,数据结构,插入排序
0
投稿

猜你喜欢

  • git使用.gitignore设置不生效或不起作用问题的解决方法

    2021-06-09 17:17:07
  • 给验证码增加干扰的杂点

    2008-05-16 11:34:00
  • 使用Python画出小人发射爱心的代码

    2022-08-07 01:52:16
  • JS+CSS实现仿支付宝菜单选中效果代码

    2023-10-05 07:29:01
  • 用python写asp详细讲解

    2022-02-26 13:21:36
  • Python之os模块案例详解

    2021-06-18 15:09:38
  • Python 快速验证代理IP是否有效的方法实现

    2022-08-12 07:22:14
  • Python 处理带有 \\u 的字符串操作

    2022-01-24 03:43:13
  • python压缩和解压缩模块之zlib的用法

    2023-09-19 08:32:07
  • NLTK 3.2.4 环境搭建教程

    2023-09-14 03:47:27
  • 在Python 3中实现类型检查器的简单方法

    2022-08-13 13:30:30
  • Linux下mysql 8.0安装教程

    2024-01-15 18:21:49
  • Python colorama 彩色打印实现代码

    2022-10-03 22:32:28
  • koa+mongoose实现简单增删改查接口的示例代码

    2024-05-13 10:04:56
  • pycharm全局搜索的具体步骤

    2023-11-04 17:31:07
  • 解析mysql 5.5字符集问题

    2024-01-13 09:01:54
  • Dreamweaver使用技巧之如何巧用DW4文件库更新网站

    2010-10-20 20:07:00
  • javascript 获取链接文件地址中第一个斜线内的正则表达式

    2024-02-25 07:53:28
  • 图文详解laravel多对多关联模型

    2023-06-12 22:21:34
  • Rs.Open参数说明

    2008-05-12 22:43:00
  • asp之家 网络编程 m.aspxhome.com