go冒泡排序

排序思想:

将待排序的一维数组,想象成水里的气泡,气泡大的浮动到上边,气泡小的在水底.

第一次循环:代表要进行比较的气泡数量,需要循环 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)
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容