原理
冒泡排序通过不断的比较相邻两个数的大小,将大的数往后移动,实现排序
关注点
冒泡次数和每次冒泡比较的次数
比如有一个n个数的数组,冒泡的次数n次,每次冒泡比较的次数=n-当前是第几次循环;
有一个特殊情况,当第一次冒泡出现无数据交换时,那这个数组就是有序的
实现
func bubbleSort(arr []int) []int {
if len(arr) <= 1 {
return arr
}
for i := 0; i < len(arr); i++ {
flag := false
for j := 0; j < len(arr) -(i+1); j++ {
if arr[j] > arr[j+1] {
flag = true
arr[j],arr[j+1] = arr[j+1],arr[j]
}
}
if !flag {
break
}
}
return arr
}