01选择排序

news/2024/10/6 10:40:07

 

1.选择排序含义

  • 每次选择最小的,放到左侧。持续进行。

2.示例代码:

def selectionSort(arr):for i in range(len(arr) - 1):# 记录最小数的索引minIndex = ifor j in range(i + 1, len(arr)):if arr[j] < arr[minIndex]:minIndex = j# i 不是最小数时,将 i 和最小数进行交换# if i != minIndex:#     arr[i], arr[minIndex] = arr[minIndex], arr[i]# 交换arr[i], arr[minIndex] = arr[minIndex], arr[i]return arrif __name__ == '__main__':arr = [3, 6, 1, 2, 4, 5]print(selectionSort(arr))

3.练习代码:

def select_sort(arr):n = len(arr)for i in range(n):min_index = ifor j in range(i,n):if arr[j] < arr[min_index]:min_index = jif arr[i] != arr[min_index]:arr[i],arr[min_index] = arr[min_index],arr[i]return arrif __name__ == '__main__':nums = [1,4,5,3,2]print(select_sort(nums))

4.截图:

5.感悟:

  • 还是,最后加一个这个arr[i]!=arr[min_index]这个判断更好理解。

6.参考资料:

  • https://www.runoob.com/w3cnote/selection-sort.html
  • https://www.bilibili.com/video/BV12P41147to/?spm_id_from=333.999.0.0&vd_source=6176e79b66461eb74da787cb8321925b

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器

Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器 利用尖端的人工智能生成技术,轻松增强照片效果 请访问原文链接:Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器,查看最新版。原创作品,…

Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗…

Burp Suite Professional 2024.4 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.4 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.4 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:Burp Suite Professional 2024.4 for macOS …

为什么会查询不到DNS信息?怎么排查?

DNS(域名系统)是将域名转换为相应 IP 地址的关键系统。查询 DNS 信息具有重要作用,通过查询 DNS 信息,我们可以知道域名对应的 IP 地址,这是最主要的信息,使设备能与目标服务器进行通信;其次是域名的相关记录,如 MX 记录(邮件交换记录)等,了解与邮件服务相关的信息;…

【动画进阶】巧用 CSS/SVG 实现复杂线条光效动画

最近,群里在讨论一个很有意思的线条动画效果,效果大致如下:简单而言,就是线条沿着不规则路径的行进动画,其中的线条动画可以理解为是特殊的光效。 本文,我们将一起探索,看看在不使用 JavaScript/Canvas 的基础上,使用纯 CSS/SVG 的方式,我们可以如何大致的还原上述的线…

mysql查询语句数组下标截取

#["广东省","汕头市","龙湖区"]SELECT a.`register_address` AS 工商地址,a.`dismantle_address`, REPLACE (dismantle_address->$[0],",) AS 省,REPLACE (dismantle_address->$[1],",) AS 市,REPLACE (dismantle_address->$…

JavaScript 流程控制语句详解:if语句、switch语句、while循环、for循环等

JavaScript,作为一种广泛使用的编程语言,它的流程控制语句是构建逻辑和实现功能的基础。流程控制语句包括条件语句、循环语句和转向语句,它们是编程中不可或缺的部分。 接下来,我们将一一解析这些语句,带你走进JavaScript的世界。 一、什么是流程控制语句 流程控制语句是用…

15个很有趣的开源项目

开源的世界每天都会有各种惊喜,下面是我们整理的15个有趣的开源项目,希望当中有您喜欢的。1. 视搭 Site: https://github.com/tnfe/shida 《视搭》是一个 视频可视化 搭建项目。您可以通过简单的拖拽方式快速生产一个短视频,使用方式就像易企秀或MAKA等 h5 搭建工具一样的简…