[GO]冒泡排序的原理和代码实现

Posted baylorqu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GO]冒泡排序的原理和代码实现相关的知识,希望对你有一定的参考价值。

冒泡排序的原理:对于一个数组里所有的元素进行两两比较,发生大于则变换数组下标则为升序排序,发生小于则变换数据下标的则为降序排序 

技术分享图片

比如给定的数组为[1, -2, 3, -4],对于我们的需求,两两比较后则发生下标变换则为升序,第一次比较后,最大值3将被移动到数组为最右边,整个数组的比较次数和发生变换的次数都有规律可循

几次比较之后,整个数组将被变换为一个升序的数组

代码实现如下

package main

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

func main()  {
    rand.Seed(time.Now().UnixNano())
    var a [10]int
    n := len(a)
    fmt.Println("from ...")
    for i := 0; i < n; i++ {
        a[i] = rand.Intn(100)
        fmt.Printf("%d, ", a[i])
    }
    fmt.Println("
")
    for i := 0; i < n-1; i++ {
        for j := 0; j <n -1 -i; j++ {
            if a[j] > a[j+1] {
                a[j], a[j+1] = a[j+1], a[j]
            }
        }
    }
    fmt.Println("order to....")
    for i := 0; i < n; i++ {
        fmt.Printf("%d, ", a[i])
    }
}

代码执行结果如下

from ...
47, 28, 82, 47, 2, 15, 40, 15, 13, 88, 

order to....
2, 13, 15, 15, 28, 40, 47, 47, 82, 88, 

 

以上是关于[GO]冒泡排序的原理和代码实现的主要内容,如果未能解决你的问题,请参考以下文章

用Go实现冒泡排序选择排序和快速排序的运行效率比较

Go语言实现冒泡排序选择排序快速排序及插入排序的方法

冒泡排序之go语言实现

三大基础排序算法(冒泡排序,选择排序,插入排序)

图解算法基础--快速排序,附 Go 代码实现

8种面试经典!排序详解--选择,插入,希尔,冒泡,堆排,3种快排,快排非递归,归并,归并非递归,计数(图+C语言代码+时间复杂度)