Golang的各种排序算法介绍
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"Golang的各种排序算法介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Golang的各种排序算法介绍"吧!冒泡排序:对一个列表多次
千家信息网最后更新 2025年12月02日Golang的各种排序算法介绍
本篇内容主要讲解"Golang的各种排序算法介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Golang的各种排序算法介绍"吧!
冒泡排序:对一个列表多次重复遍历。比较相邻的两项,并且交换大小顺序排错的项。每对
列表实行一次遍历,就有一个最大项或者最小排在了正确的位置。总的来说,列表的每一个数据项都会在
其相应的位置"冒泡"。
冒泡第1次排序图解
选择排序:比冒泡排序性能提高一点。它每遍历一次列表只交换一次数据,即进行一次遍历时找
到最大或者最小的项,完成遍历后,再把它换到正确的位置。
选择排序图解
插入排序:总是保持一个位置靠前的已排好的子表,然后每一个新的数据项被"插入"到前边的子表里,
排好的子表增加一项。插入排序图解
代码:
package main
import "fmt"
func main() {
var (
dataArr = []int{3, 9, 7, 5, 61, 85, 99, 456, 21, 456}
)
fmt.Println(sortMaoBao(dataArr, true))
fmt.Println(sortChoice(dataArr, true))
fmt.Println(sortInsert(dataArr, true))
}
/*
冒泡排序:对一个列表多次重复遍历。比较相邻的两项,并且交换大小顺序排错的项。每对
列表实行一次遍历,就有一个最大项或者最小排在了正确的位置。总的来说,列表的每一个数据项都会在
其相应的位置"冒泡"。
选择排序:比冒泡排序性能提高一点。它每遍历一次列表只交换一次数据,即进行一次遍历时找
到最大或者最小的项,完成遍历后,再把它换到正确的位置。
插入排序:总是保持一个位置靠前的已排好的子表,然后每一个新的数据项被"插入"到前边的子表里,
排好的子表增加一项。*/
// sortMaoBao sortCond true 大到小排序, 反之小到大
func sortMaoBao(data []int, sortCond bool) []int {
var (
l = len(data) - 1
)
for l > 0 {
for i := 0; i < l; i++ {
// 每一个当前位置与下一位进行比较,所有的数据都进行比较完毕,就可以得到排序后的数据
if sortCond {
if data[i+1] > data[i] {
data[i+1], data[i] = data[i], data[i+1]
}
} else {
if data[i+1] < data[i] {
data[i+1], data[i] = data[i], data[i+1]
}
}
}
l--
}
return data
}
// sortChoice sortCond true 大到小排序, 反之小到大
func sortChoice(data []int, sortCond bool) []int {
var (
l = len(data) - 1
)
for l > 0 {
var initIndex int
// 初始值与第1个比较
for i := 1; i < l+1; i++ {
if sortCond {
if data[i] < data[initIndex] {
initIndex = i
}
} else {
if data[i] > data[initIndex] {
initIndex = i
}
}
}
data[l], data[initIndex] = data[initIndex], data[l]
l--
}
return data
}
// sortInsert sortCond true 大到小排序, 反之小到大
func sortInsert(data []int, sortCond bool) []int {
for l := 1; l < len(data); l++ {
currentValue := data[l]
position := l
if !sortCond {
for position > 0 && data[position-1] > currentValue {
data[position] = data[position-1]
position--
data[position] = currentValue
}
} else {
for position > 0 && data[position-1] < currentValue {
data[position] = data[position-1]
position--
data[position] = currentValue
}
}
}
return data
}
到此,相信大家对"Golang的各种排序算法介绍"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
排序
位置
数据
最大
最小
数据项
算法
选择
内容
大小
性能
总的来说
表里
顺序
高一
加一
学习
实用
更深
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发涂色
绩溪常规软件开发服务有几种
华宇互联网科技有限公司
共享干衣机 软件开发
小学生校园网络安全事件案例
计算机应用技术网络技术哪个好学
说明网络安全与政治的联系
网络技术员需要考神魔证书
网络安全和信息化工作任务清单
南京网络技术咨询价格
雅博数据库考研率
台州百泰网络技术环境
计算机网络安全章节选择题
rds数据库备份教程
昌乐天久网络技术服务有限公司
忻州大屏互动触摸软件开发公司
网络安全和信息化应该
软件开发技术服务费人工费
数据库连接池的好处
数据库M形锁
软件开发需要的素养
计算机数据库组装
北京前端软件开发大概多少钱
数据库安全策略最大共享策略
深圳市乐定互联网科技有限公司
药智数据 原药智网数据库
中国网络安全年会主办方
网络技术的高速发展改善
汽车空调软件开发
网络安全手抄报内容视频