Golang的各种排序算法介绍
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容主要讲解"Golang的各种排序算法介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Golang的各种排序算法介绍"吧!冒泡排序:对一个列表多次
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
华为软件开发能力
网络安全 关键词监控
仙桃数据谷软件开发
海上风电网络安全
杭州微期货软件开发
河北智能软件开发信息推荐
网络安全保障体系英语
福建中小学网络安全知识竞赛
mc服务器tp
周口市网络安全和技术侦查支队
计算机三级数据库考试真题
上海现代软件开发要多少钱
关于网络安全文明上网的图画
对峙2服务器维护图片
海南省云服务器云空间
2019网络技术大会
未来网络安全的职位
群晖搭建个人直播服务器
亲亲漫画服务器
华师大数据库.
六安系统软件开发外包公司
大学校园网络安全工作总结
监控服务器如何进入管理
林芝市网络安全答题
如何上传服务器渲染
跑跑网络技术服务
华为ai服务器功能怎么用
云南债权管理软件开发
零基础怎么学习手机软件开发
计算机网络技术应用毕业论文