首页 > 其他分享 >Go-冒泡排序

Go-冒泡排序

时间:2022-12-15 12:24:54浏览次数:40  
标签:11 10 arr int fmt 冒泡排序 length Go

package main

import "fmt"

//11,9,2,8,3,7,4,6,5,10
//9 11 2 8 3 7 4 6 5 10
//9 2 11 8 3 7 4 6 5 10
//9 2 8 11 3 7 4 6 5 10
//9 2 8 3 11 7 4 6 5 10
//9 2 8 3 7 11  4 6 5 10
//9 2 8 3 7 4  11 6 5 10
//9 2 8 3 7 4  6 11  5 10
//9 2 8 3 7 4  6  5 11 10
//9 2 8 3 7 4  6  5 10 11
//9 2 8 3 7 4  6  5 10

func BubbleFindMax(arr []int) int {
    length := len(arr) //求数组长度
    if length <= 1 {
        return arr[0]
    } else {
        for i := 0; i < length-1; i++ {
            if arr[i] > arr[i+1] { //两两比较
                arr[i], arr[i+1] = arr[i+1], arr[i]
            }
        }
        return arr[length-1]
    }
}

func Bubblesort(arr []int) []int {
    length := len(arr) //求数组长度
    if length <= 1 {
        return arr
    } else {
        for i := 0; i < length-1; i++ { //只剩一个,不需要冒泡了
            isneedexchange := false
            for j := 0; j < length-1-i; j++ {
                if arr[j] > arr[j+1] { //两两比较
                    arr[j], arr[j+1] = arr[j+1], arr[j]
                    isneedexchange = true
                }
            }
            if !isneedexchange {
                break
            }
            fmt.Println(arr)

        }

        return arr
    }
}

func main() {
    arr := []int{11, 9, 2, 8, 3, 7, 4, 6, 5, 10}
    //fmt.Println(BubbleFindMax(arr))
    fmt.Println(Bubblesort(arr))

}

 

标签:11,10,arr,int,fmt,冒泡排序,length,Go
From: https://www.cnblogs.com/Essaycode/p/16984684.html

相关文章

  • Go-堆排序
    packagemainimport"fmt"funcHeapSort(arr[]int)[]int{length:=len(arr)fori:=0;i<length;i++{lastmesslen:=length-i//......
  • Go--并发编程
    摘抄(有删改):https://www.topgoer.cn/docs/golang/chapter09-1一、并发介绍1.1进程和线程进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位......
  • vue+django项目nginx部署在https下
    vue+django项目nginx部署在https下1.问题出现这个问题的原因是在https网站下浏览器不允许发送http请求。由于django默认是http,所以肯定会报这个错误,如果网站部署在http......
  • chaosblade-exec-os项目的burnio.go文件解读
    #################################################代码位置:​​https://github.com/chaosblade-io/chaosblade-exec-os.git​​文件位置:chaosblade-exec-os/exec/bin/burn......
  • gorilla/mux
    ##############地址:​​https://github.com/gorilla/mux​​   安装goget-ugithub.com/gorilla/mux 使用添加包引用:"github.com/gorilla/mux" 常用方法介绍初始化路......
  • Go语言性能剖析利器--pprof实战
    作者:耿宗杰前言关于pprof的文章在网上已是汗牛充栋,却是千篇一律的命令介绍,鲜有真正实操的,本文将参考Go社区资料,结合自己的经验,实战Go程序的性能分析与优化过程。优化思路首......
  • mongodb的collection方法
       方法名描述​​db.collection.aggregate()​​聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果​​db.collection.bulkWrite()​​批量写入​​d......
  • mongodb的db方法
          方法名描述​​db.cloneDatabase()​​从指定主机上克隆数据库​​db.currentOp()​​显示当前正在进行的操作​​db.commandHelp()​​返回数据库命令的帮助信......
  • 搭建mongodb分片集群
            注意:mongos、config、shard三个角色的实例的keyfile内容保证完全一致: 如果搭建副本集时,出错,那么删掉     config副本集配置文件内容:使用mongod启动:[w......
  • golang的module管理与使用go mod
    #############################  更换或升级了golang后,需要删除go.mod、go.sum、vendor文件,然后重建,不然一直卡在那里      使用: Gomodules操作命令及相关文件解......