文章目录
前言
冒泡排序(Bubble Sort) 最为简单的一种排序,通过重复走完数组的所有元素,通过打擂台的方式两个两个比较,直到没有数可以交换的时候结束这个数,再到下个数,直到整个数组排好顺序。因一个个浮出所以叫冒泡排序。双重循环时间 O(n^2)
一、算法描述
1.比较相邻两个数据如果。第一个比第二个大,就交换两个数
2.对每一个相邻的数做同样1的工作,这样从开始一队到结尾一队在最后的数就是最大的数。
3.针对所有元素上面的操作,除了最后一个。
4.重复1~3步骤,知道顺序完成。
算法可视化
二、使用步骤
具体实现代码如下:
func main() {
arr := []int{1, 2, 35, 48, 98, 23}
fmt.Println(arr)
bubbleSort(arr)
fmt.Println(arr)
}
func bubbleSort(a []int) {
if a == nil || len(a) < 2 {
return
}
n := len(a)
for end := n - 1; end > 0; end-- {
for i := 0; i < end; i++ {
if a[i] > a[i+1] {
a[i], a[end] = a[end], a[i]
}
}
}
}