Go语言冒泡排序

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

示例代码如下所示:
package main

import (
   "fmt"
)
/**
冒泡排序
*/
func main() {
    arr := [...]int{21,32,12,33,34,34,87,24}
    var n = len(arr)
    fmt.Println("--------没排序前--------\n",arr)
    for i := 0; i <= n-1; i++ {
        fmt.Println("--------第",i+1,"次冒泡--------")
        for j := i; j <= n-1; j++ {
            if arr[i] > arr[j] {
                t := arr[i]
                arr[i] = arr[j]
                arr[j] = t
            }
            fmt.Println(arr)

        }
    }
    fmt.Println("--------最终结果--------\n",arr)
}
执行结果如下所示:

D:\code>go run main.go
--------没排序前--------
[21 32 12 33 34 34 87 24]
--------第 1 次冒泡--------
[21 32 12 33 34 34 87 24]
[21 32 12 33 34 34 87 24]
[12 32 21 33 34 34 87 24]
[12 32 21 33 34 34 87 24]
[12 32 21 33 34 34 87 24]
[12 32 21 33 34 34 87 24]
[12 32 21 33 34 34 87 24]
[12 32 21 33 34 34 87 24]
--------第 2 次冒泡--------
[12 32 21 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
--------第 3 次冒泡--------
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 32 33 34 34 87 24]
[12 21 24 33 34 34 87 32]
--------第 4 次冒泡--------
[12 21 24 33 34 34 87 32]
[12 21 24 33 34 34 87 32]
[12 21 24 33 34 34 87 32]
[12 21 24 33 34 34 87 32]
[12 21 24 32 34 34 87 33]
--------第 5 次冒泡--------
[12 21 24 32 34 34 87 33]
[12 21 24 32 34 34 87 33]
[12 21 24 32 34 34 87 33]
[12 21 24 32 33 34 87 34]
--------第 6 次冒泡--------
[12 21 24 32 33 34 87 34]
[12 21 24 32 33 34 87 34]
[12 21 24 32 33 34 87 34]
--------第 7 次冒泡--------
[12 21 24 32 33 34 87 34]
[12 21 24 32 33 34 34 87]
--------第 8 次冒泡--------
[12 21 24 32 33 34 34 87]
--------最终结果--------
[12 21 24 32 33 34 34 87]