[Go] Golang练习项目-GO实现冒泡排序以及优化算法
2023-02-18 15:36:29 时间
核心原理:
比较相邻的两个元素,较大的一个交换移动到右边
优化:
已经排好序的元素不再进行比较,减少比较次数
下面函数的变量flag 用于判断后续元素有无发生交换,没有发生交换的直接停止遍历
变量lastSwapIndex ,记录最后一次发生交换的位置,后续元素不再进行比较
//冒泡排序 func BubbleSort(arr *[]int){ flag:=true lastSwapIndex:=0 for i:=0;i<len(*arr)-1;i++{ sortBorder:=len(*arr)-1-i for j:=0;j<sortBorder;j++{ if (*arr)[j]>(*arr)[j+1]{ temp:=(*arr)[j] (*arr)[j]=(*arr)[j+1] (*arr)[j+1]=temp flag=false lastSwapIndex=j } } sortBorder=lastSwapIndex if flag{ break } } }
相关文章
- Typora+PicGo+GitHub实现图片快速上传
- Linux计划任务服务程序
- 2022 如何在 GitHub 上搭建个人网站(github.io)
- 虚拟机安装linux无法访问外网解决办法
- 用过 mongodb 吧, 这三个大坑踩过吗?
- 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了
- MongoDB 在评论中台的实践
- 使用mongodb作为Quartz.Net下的JobStore实现底层的持久化机制
- mongodb之使用explain和hint性能分析和优化
- mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理
- mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理
- 双十一来了,别让你的mongodb宕机了
- GO语言开发环境搭建笔记
- PHP判断网络连通
- 开启phpMyAdmin的远程登录
- PHP_cURL初始化和执行方法
- PHP经典函数收集
- PHP所有函数列表
- php bbcode过滤
- php不使用中间变量交换两个变量的值