package main
import (
"fmt"
)
func bubble(arr []int) []int {
var flag bool // 如果一轮冒泡没有执行任何操作,那么说明排序完成
for i := 0; i < len(arr); i++ {
flag = true // 标记为true
for j := i; j < len(arr)-1; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
flag = false // 如果进行过排序,说明下一次可能还需要排序,那么flag标记为false,不能跳出
}
}
if flag {
break
}
}
return arr
}
func main() {
var slice []int = []int{2, 1, 4, 3, 5}
arr := bubble(slice)
fmt.Println(arr)
}
golang冒泡排序
最新推荐文章于 2024-04-08 12:13:58 发布