美文网首页Linux运维
golang实现冒泡算法

golang实现冒泡算法

作者: 菩提老鹰 | 来源:发表于2020-05-27 17:49 被阅读0次

具体代码实现

/**
 * 冒泡算法 go 实现
 */

package main

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

func main() {
    // 获取随机数个数
    randCount := 10
    randRandMax := 100
    // bucketMax := randRandMax + 1
    // make 创建切片,已经初始化完毕。在append的话,前面值都为0
    // randList := make([]int, randCount)
    var randList []int
    // 随机数中添加种子,可以保证每次执行,产生的随机数是“真的”随机
    seed := rand.New(rand.NewSource(time.Now().UnixNano()))
    for index := 0; index < randCount; index++ {
        number := seed.Intn(randRandMax)
        randList = append(randList, number)
    }
    fmt.Printf("原始列表[%d]: %v\n", len(randList), randList)

    // 最外层表示一共循环的次数
    for i := 0; i < len(randList)-1; i++ {
        // 内层表示逐层比较的次数递减
        for j := 0; j < len(randList)-1-i; j++ {
            // 这里打印出来 i, j, j+1 来验证实际的冒泡 是相邻的两个数字做对比
            // 并且对比次数是逐层递减的
            fmt.Println(i, j, j+1)
            // // sort Z -> A
            // if randList[j] < randList[j+1] {
            //  randList[j], randList[j+1] = randList[j+1], randList[j]
            // }
            // sort A -> Z
            if randList[j] < randList[j+1] {
                randList[j], randList[j+1] = randList[j+1], randList[j]
            }

        }
        fmt.Println("<-------------->")
        // fmt.Println(i, randList[i])
    }
    fmt.Println("\n排序结束\n排序列表: ", randList)
}

结果展示

原始列表[10]: [58 52 40 0 38 67 12 22 74 18]
0 0 1
0 1 2
0 2 3
0 3 4
0 4 5
0 5 6
0 6 7
0 7 8
0 8 9
<-------------->
1 0 1
1 1 2
1 2 3
1 3 4
1 4 5
1 5 6
1 6 7
1 7 8
<-------------->
2 0 1
2 1 2
2 2 3
2 3 4
2 4 5
2 5 6
2 6 7
<-------------->
3 0 1
3 1 2
3 2 3
3 3 4
3 4 5
3 5 6
<-------------->
4 0 1
4 1 2
4 2 3
4 3 4
4 4 5
<-------------->
5 0 1
5 1 2
5 2 3
5 3 4
<-------------->
6 0 1
6 1 2
6 2 3
<-------------->
7 0 1
7 1 2
<-------------->
8 0 1
<-------------->

排序结束
排序列表:  [74 67 58 52 40 38 22 18 12 0]

相关文章

  • golang实现冒泡算法

    具体代码实现 结果展示

  • Golang学习笔记之2:多种排序算法

    Golang 实现多种排序算法 冒泡排序 冒泡排序思想:从前到后,依次两两比较,两层循环,一层控制比较趟数,一层控...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • 算法:冒泡排序

    本文内容:1、什么是冒泡排序?2、冒泡排序的 C/OC 实现与算法分析。 算法总目录:算法? 1、什么是冒泡排序?...

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 数据结构与算法 - 排序

    代码实现基于golang version 1.18 1. 冒泡排序 冒泡排序是一种交换排序,核心是冒泡,把数组中...

  • golang 冒泡排序算法

    排序前 [7 13 4 5 8 1 11 9]排序后 [1 4 5 7 8 9 11 13]

  • Golang 排序算法

    基本排序算法的Golang实现 BubbleSort InsertSort SelectSort

网友评论

    本文标题:golang实现冒泡算法

    本文链接:https://www.haomeiwen.com/subject/xxkgahtx.html