码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-26 18:16:37      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:执行   个数   src   数组下标   nbsp   com   ++   比较   mat   

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

技术分享图片

比如给定的数组为[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("\n")
    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]冒泡排序的原理和代码实现

标签:执行   个数   src   数组下标   nbsp   com   ++   比较   mat   

原文地址:https://www.cnblogs.com/baylorqu/p/9537647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!