侧边栏壁纸
博主头像
ToDream博主等级

行动起来,活在当下

  • 累计撰写 13 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

冒泡排序

X
X
2023-12-13 / 0 评论 / 0 点赞 / 27 阅读 / 2469 字

冒泡排序 (Golang)

package main

import "fmt"

func main() {
	// 需要进行排序的数组
	nums := []int{2, 45, 1, 5, 76, 8, 3, 1, 2, 3}
	// 进行冒泡排序
	bubbleSort(nums, false)
	// 在控制台打印
	fmt.Println(nums)
}

// 冒泡排序函数
func bubbleSort(arr []int, reverse bool) {
	// 获取需要循环的次数
	arrLen := len(arr) - 1
	// 外层循环用于控制需要比较的轮数,每一轮都能确定一个最大值放在切片最后
	for i := 0; i < arrLen; i++ {
		// 注意:每一轮循环都能确定一个最大值,所以下一轮循环需要减去已确定的值
		// 内层循环用于两两比较相邻元素的大小,并进行交换
		for a := 0; a < arrLen-i; a++ {
			// 定义一个可以用于控制 正序 还是 倒序 变量
			var sortValue bool
			if reverse {
				sortValue = arr[a] < arr[a+1]
			} else {
				sortValue = arr[a] > arr[a+1]
			}
			// 进行位置交换
			if sortValue {
				arr[a], arr[a+1] = arr[a+1], arr[a]
			}
		}
	}
	return
}
0

评论区