排序思想:
将待排序的一维数组,想象成水里的气泡,气泡大的浮动到上边,气泡小的在水底.
第一次循环:代表要进行比较的气泡数量,需要循环 len(arr)次,将每一个气泡排序一次
第二次循环:将数组的的第i个元素拿出来与其他气泡比较大小,如果大于其他气泡则交换气泡位置,相当于气泡上浮
maopao.png
package main
import(
"fmt"
)
func main() {
arr := []int{7,432,5,4326,2,27,7,72,4,2564}
BubbleAsort1(arr)
BubbleAsort2(arr)
}
//写法一:
func BubbleAsort1(arr []int){
//第一层,气泡数量次比较,拿出每个气泡出来排序
for count:=0;count<len(arr)-1;count++ {
for j:= 0;j<len(arr)-1-count;j++{//每次拿出第一个与后面的比较,每次循环后比较的总数量-1
if arr[j]<arr[j+1]{//倒叙
arr[j],arr[j+1] = arr[j+1],arr[j]
}
}
}
fmt.Println(arr)
}
//方法二:
func BubbleAsort2(arr []int) {
for i := 0; i < len(arr )-1; i++ {//需要比较的次数,每一个拿出来排序
for j := i+1; j < len(arr ); j++ {//拿出后边的与要排序的气泡比较大小
if arr [i]>arr [j]{//正序,交换顺序
arr [i],arr [j] = arr [j],arr [i]
}
}
}
fmt.Println(values)
}