冒泡排序
golang实现冒泡排序
核心思想:
从第一个开始遍历,将过程中最大的放到最好一个(类似气泡往上冒),第二次遍历数 - 1,依次往后,直到第一个最小。
func BubbleSort(list []int){
n:=len(list)
//在第一轮没有交换
didSwap := false
//进行第N-1轮迭代
for i:= n-1;i>0;i--{
//每次从第一轮开始比较,比较到第i位就不比较了,因为前一轮已经排好序
for j := 0; j < i; j++ {
if list[j]>list[j+1]{
list[j],list[j+1] = list[j+1],list[j]
didSwap =true
}
}
//如果在第一轮中没有交换,说明已经拍好了序,直接返回
if !didSwap {
return
}
}
}