[golang]数据结构-冒泡排序

碎碎念
不能再经典的排序算法,说到排序算法大部分可能第一印象就是它了吧。记得大学时老师还花了一节课的时间进行详细解释。

成都创新互联主营耀州网站建设的网络公司,主营网站建设方案,成都APP应用开发,耀州h5小程序开发搭建,耀州网站营销推广欢迎耀州等地区企业咨询

原理
冒泡算法(bubble sort) 是一种很简单的交换排序。每轮都从第一个元素开始,依次将较大值向后交换一位,直至整个队列有序。

复杂度
和其他低效排序算法一样,平均时间复杂度是O(n^2)。最好的情况就是原队列就是排列好的数组,这个时候时间复杂度就是O(n)。空间复杂度为O(1),用于交换。
按顺序通过比较排序的算法都是稳定的,冒泡排序也是这样。

代码

package main

import (
    "time"
    "fmt"
    "math/rand"
)

func main() {
    var length = 15
    var list []int

    // 以时间戳为种子生成随机数,保证每次运行数据不重复
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    for i := 0; i < length; i++ {
        list = append(list, int(r.Intn(1000)))
    }
    fmt.Println(list)

    // n-1轮,每轮减少一位的比较
    for i := 1; i < length; i++ {
        // 每轮都从第一个元素开始,将最大的值交换到最后一位
        for j := 0; j < length-i; j++ {
            if list[j] > list[j+1] {
                list[j], list[j+1] = list[j+1], list[j]
            }
        }
        fmt.Println(list)
    }

}

运行结果
[golang] 数据结构-冒泡排序


本文名称:[golang]数据结构-冒泡排序
链接地址:http://bzwzjz.com/article/ppoopg.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站制作 定制网站设计 成都网站制作 成都网站建设 四川成都网站制作 手机网站设计 手机网站制作设计 手机网站建设 成都网站建设 成都网站制作 成都网站设计 成都网站建设 成都网站设计 成都营销网站建设 泸州网站建设 成都网站建设 品牌网站建设 定制网站设计 定制网站制作 成都网站设计 网站建设公司 成都网站设计