为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Go


原理

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

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

时间复杂度

比较次数固定为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的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消