继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

[golang] 数据结构-简单选择排序

holdtom
关注TA
已关注
手记 1885
粉丝 240
获赞 992


原理

简单选择排序应该是最直观最容易理解的排序方法了。

直接从头开始一个一个去比,找出最小的放到最左边。再依次完成其他位的排序。

时间复杂度

比较次数固定为O(n^2),数据交换次数是0~n-1次

因为会交换不同位置相同数值的数据,所以选择排序并不稳定

代码实现

package main

import (

    "fmt"

)

func main() {

    var length = 10

    var mm = make(map[int]int, length)

    var o []int

    // 先准备一个顺序随机的数(qie)组(pian)

    for i := 0; i < length; i++ {

        mm[i] = i

    }

    for k, _ := range mm {

        o = append(o, k)

    }

    fmt.Println(o)

    // 两次循环找到最小的排前面

    for i := 0; i < length; i++ {

        min := i

        for j := length - 1; j >= i; j-- {

            if o[j] < o[min] {

                min = j

            }

        }

        // 当前就是最小值时就不交换了

        if min == i {

            continue

        }

        // 顺序交换

        o[i], o[min] = o[min], o[i]

        fmt.Println(o)

    }

}

运行结果

[golang] 数据结构-简单选择排序

©著作权归作者所有:来自51CTO博客作者NicoChen的原创作品,如需转载,请注明出处,否则将追究法律责任


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP