go语言版
// BubbleSort 冒泡排序 核心思想:相邻元素比较并交换
func BubbleSort(a []int) []int {
for i := 0; i < len(a)-1; i++ { // n-1趟交换就行
for j := 1; j < len(a)-i; j++ { // 每趟交换结束都会安置好一个元素,所以下次遍历就可以少遍历一个元素
// j初始值1 防止数组越界
if a[j-1] > a[j] {
a[j-1], a[j] = a[j], a[j-1]
}
}
}
return a
}