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

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

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

直接选择排序算法思路:

第 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vscode 前端常用必备插件汇总。「建议收藏」

    vscode 前端常用必备插件汇总。「建议收藏」持续更新,欢迎推荐好的插件。1.vscode基础智能能提示类插件2.vscode美化优化类插件3.vscode各大框架辅助插件4.markdown工具类插件

    2022年7月25日
    21
  • Chrome Devtool 断点[通俗易懂]

    Chrome Devtool 断点[通俗易懂]代码行断点代码中的代码行断点console.log(‘a’);console.log(‘b’);debugger;console.log(‘c’);DOM更改断点单击元素选项卡转到要设置断点的元素右键单击该元素将鼠标悬停在Break上,然后选择Subtree修改、属性修改或节点删除DOM更改断点的类型子树修改属性修改节点移除XHR/获取断点当在XHR请求URL包含特定字符串时中断展开XHRBreakpoints点击+输入字符串。当此字符串出现在X

    2022年9月26日
    2
  • signal 聊天记录_实时查看车辆位置app

    signal 聊天记录_实时查看车辆位置app开发工具与关键技术:js作者:GuanLW撰写时间:2022/3/18第一步:先在vs的NuGet包中下载安装Microsoft.AspNet.SignalR。第二步:右键项目->新建项,选择signalr集线器类,并写入代码,namespace与类名记得改成实际类名如下:usingMicrosoft.AspNet.SignalR;usingMicrosoft.AspNet.SignalR.Hubs;usingSystem;usingSystem.C

    2022年10月19日
    2
  • MySQL游标_oracle游标超限

    MySQL游标_oracle游标超限1.简单介绍从MySQL5开始添加了对游标(cursor)的支持,使用游标可以很方便的在查询出来的结果集上获取第一行、最后一行、上一行或下一行等一系列的操作。游标是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。MySQL游标只能用于存储过程和函数中。2….

    2025年7月31日
    2
  • Python排序函数

    Python排序函数Python中自带了两个排序函数sort和sorted,用法分别为:sort函数用法list.sort(cmp=None,key=None,reverse=False)特点:对list原地排序(直接改变数组),无返回值。参数:cmp——可选参数,可用于自定义排序规则。key——主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一…

    2022年6月23日
    26
  • 10个最好的 JavaScript 动画库【值得收藏】

    10个最好的 JavaScript 动画库【值得收藏】前端动画场景需求多众多,面对这么多花里胡哨的动画需求,这里给大家推荐10个比较好用的js动画库,轻松实现各种花里胡哨的动画❤️1.Tween.jsTweenJS是一个简单的JavaS…

    2022年10月15日
    2

发表回复

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

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