Golang的各种排序算法介绍
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Golang的各种排序算法介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Golang的各种排序算法介绍"吧!冒泡排序:对一个列表多次
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
互联网科技有限公司
上海卓越科技互联网
重生之互联网科技帝国
互联网属科技
互联网和科技创新
善班互联网科技有限公司
润盈互联网科技
卫星互联网科技股票
以后互联网后是啥科技
佳云科技和互联网广告
成都铂石互联网科技做什么的
未来五年的互联网科技
企晟互联网信息科技有限公司
江苏互联网智能科技软件
浙南科技城互联网大厦招聘
云南互联网科技学费
恒生科技指数 中概互联网
互联网金融金融科技
互联网领先科技成果宣传视频
现代科技的标志之一的互联网
科技与互联网发展
深圳期待互联网科技
亿人帮互联网科技
科技大学互联网专业好不好
上海电发互联网科技有限公司
开启互联网科技时代小说
互联网之后的科技是什么
健康食品互联网创新科技园项目
华夏恒生科技与互联网科技
互联网科技博主张洲