常用排序算法:直接选择排序[通俗易懂]

常用排序算法:直接选择排序[通俗易懂]常用排序算法:直接选择排序

大家好,又见面了,我是你们的朋友全栈君。

直接选择排序算法思路:

第 1 趟,在待排序记录 r1 ~ r[n]中选出最小的记录,将它与 r1 交换;第 2 趟, 在待排序记录 r2 ~ r[n]中选出最小的记录,将它与 r2 交换;以此类推,第 i 趟在待排序 记录 r[i] ~ r[n]中选出最小的记录,将它与 r[i]交换,使有序序列不断增长直到全部排序 完毕。

例如[2, 4, 3, 1, 0],第一趟找到最小值为0,将0和第一位交换,得到[0, 4, 3, 1, 2],第二趟从[4, 3, 1, 2]中找到最小值1,再和第一位交换得到[0, 1, 3, 4, 2],以此类推知道排序完成。

代码实现:

def select_sort(nums):
    for i in range(len(nums)):  # 第i趟开始时 无序区为:[i:]
        min_pos = i  # 最小值位置
        for j in range(i + 1, len(nums)):  # 在无序区里面找最小值,并记录位置
            if nums[j] < nums[min_pos]:
                min_pos = j
        nums[min_pos], nums[i] = nums[i], nums[min_pos]  # 交换
        print(nums)


select_sort([2, 4, 3, 1, 0])

# [0, 4, 3, 1, 2]
# [0, 1, 3, 4, 2]
# [0, 1, 2, 4, 3]
# [0, 1, 2, 3, 4]
# [0, 1, 2, 3, 4]

 

转载于:https://www.cnblogs.com/FanMLei/p/10501000.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107244.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 三极管的饱和导通条件[通俗易懂]

    三极管的饱和导通条件[通俗易懂]请看图,假设三极管基极电流为1MA,三极管直流放大倍数为50,那么在三极管集电极就有50MA电流。这时如果RL取100Ω,那么在RL两端分得电压5V,而另5V就加在三极管上,这时三极管处于正常放大状态。如果RL取300Ω呢?根据计算。在RL上应该分得15V电压。如果电源电压超过15V,那么这个电路仍处于放大壮态。可这里电源电压只有10V,那么这10V电压几乎全加在了电阻上,而三极管…

    2022年6月29日
  • Rewritecond介绍「建议收藏」

    Rewritecond介绍「建议收藏」RewriteCondSyntax:RewriteCondTestStringCondPattern[flags]  RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。  TestString是一个字符串,除了包含普通的

    2022年6月13日
  • Java程序员面试简历模板(30套简历模板+300套简历)「建议收藏」

    Java程序员面试简历模板(30套简历模板+300套简历)「建议收藏」简历是吸引面试官的第一步,找工作就从包装简历开始

    2022年7月9日
  • maven 环境配置详细步骤[通俗易懂]

    maven 环境配置详细步骤[通俗易懂]maven环境配置前言环境配置步骤本地仓库配置新建一个maven项目与其环境配置前言maven是一个项目自动构建工具,环境配置步骤1、首先去官网下载maven安装包:http://maven.apache.org/download.cgi2、配置maven环境变量如上图配置MAVEN_HOME和M2_HOME,其内容是maven的安装路径(不要有中文!)3、修改path添加maven相关路径在path中配置jdk的环境变量后面加上两条:%MAVEN_HOME%\bin%M2_HOME

    2022年5月14日
  • fec什么意思_QQ浏览器怎么使用WebRTC

    fec什么意思_QQ浏览器怎么使用WebRTCWebRTC::FEC目录WebRTC::FEC ULPFEC FLEXFEC Encodeulpfec Decodeulpfec 动态FEC冗余度 FlexFECinWebRTC WebRTC::FECTags:WebRTCFECWebRTC中的FEC实现分为UlpFEC和FlexFEC ulpfec:rfc5109 …

    2022年8月11日
  • upload通关手册

    uploadlabs通关0x00前言这段时间一直在忙,没时间来更新文章,这里就写篇uploadlabs的通关手册吧,现在包括网上也有很多upload通关手册,但是在这里还是想自己去写一篇,来

    2021年12月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号