您的位置 首页 golang

golang实现冒泡算法

具体代码实现

/** * 冒泡算法 go 实现 */package mainimport (    "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 10 1 20 2 30 3 40 4 50 5 60 6 70 7 80 8 9<-------------->1 0 11 1 21 2 31 3 41 4 51 5 61 6 71 7 8<-------------->2 0 12 1 22 2 32 3 42 4 52 5 62 6 7<-------------->3 0 13 1 23 2 33 3 43 4 53 5 6<-------------->4 0 14 1 24 2 34 3 44 4 5<-------------->5 0 15 1 25 2 35 3 4<-------------->6 0 16 1 26 2 3<-------------->7 0 17 1 2<-------------->8 0 1<-------------->排序结束排序列表:  [74 67 58 52 40 38 22 18 12 0]

文章来源:智云一二三科技

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

文章地址:https://www.zhihuclub.com/1462.shtml

关于作者: 智云科技

热门文章

网站地图