Golang 冒泡 排序 选择排序 具体实现

最近在看一些看了又容易忘的知识点,虽然在业务代码中很少用,但在当下这种大环境下又不得不记,其实像在 php 中,各种 sort 函数是真好用…

package main
import (
“log”
“math/rand”
“time”
)
func sort() {
var arr []int
random := rand.New(rand.NewSource(time.Now().Unix()))
for i := 0; i < 10; i++ {
arr = append(arr, random.Intn(9999))
}
log.Println(arr)
log.Println(insertion(arr))
}
// 插入排序
func insertion(arr []int) []int {
for i := range arr {
pre := i – 1
current := arr[i]
for pre >= 0 && arr[pre] > current {
arr[pre+1] = arr[pre] // 前者比后大,则前者往后移空出位置
pre -= 1
}
arr[pre+1] = current // 最后插进去
}
return arr
}
// 选择排序
func selection(arr []int) []int {
var l = len(arr)
for i := 0; i < l-1; i++ {
minIndex := i
for j := i + 1; j < l; j++ {
if arr[minIndex] > arr[j] {
minIndex = j
}
}
if i != minIndex {
arr[i], arr[minIndex] = arr[minIndex], arr[i]
}
}
return arr
}
// 冒泡排序
func bubble(arr []int) []int {
var l = len(arr)
for i := 0; i < l-1; i++ {
for j := 0; j < l-i-1; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
return arr
}

参考

https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.
QQ交流群 922260178
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容