当前位置: 首页 > article >正文

python选择排序算法

选择排序算法是把数组中最小的值与第一个数组元素交换,然后找到次小的值,与第二个数组元素交换,依次类推,直到完成排序。

编写这类排序算法需要两层循环,第一层,设定变量为min,循环变量i赋值给min。外层循环是假定最前面的数值是最小的

内层循环是将遍历整个数组,与最前面的数值比较,如果后面的数值比最前面的小,就把该数值列标赋值给min

最后是将最小的元素与当前元素交换

代码如下

#选择排序法

#设置要排序的数组
data = [6,15,4,2,8,5,11,9,7,13]

#选择排序法
for i in range(len(data)):
    min=i   #设置最小的值
    for j in range(i+1,len(data)):
        if data[min]>data[j]:
            min=j
#上面的代码是两层循环,最外层是把i赋值给变量min,内层循环是每次把列表中的第min值与第j个值比较,如果
#data[min]>data[j] ,也就是说min被赋值给最小的值列标
    data[i],data[min]=data[min],data[i]    
#最小值与当前元素互换
print(data)           

 

选择排序是先拿第一个元素与后面的比,谁小放前面,接着是第二个元素与后面比,谁小放前面,时间复杂度是O(n^2),空间复杂度需要一个空间存储最小值下标,是O(1)

 


http://www.kler.cn/a/305333.html

相关文章:

  • python 同时控制多部手机
  • 【自用】0-1背包问题与完全背包问题的Java实现
  • neo4j desktop基本入门
  • C# 模拟浏览器自操作(自动化办公)
  • 2024-11-13 学习人工智能的Day26 sklearn(2)
  • ssm100医学生在线学习交流平台+vue(论文+源码)_kaic
  • 基于Java+Mysql实现(web)大型企业管理系统
  • API安全测试 | Postman + BurpSuite 配置证书代理
  • chapter14-集合——(List)——day17
  • 828华为云征文|部署在线文件管理器 Spacedrive
  • 大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
  • 【LLM多模态】CogVideoX文生视频模型结构和训练过程
  • 【openGauss】检查工具gs_check,gs_checkperf的应用
  • Redisson 异步释放锁
  • 什么是485无线通信
  • 磁盘写操作压力测试工具的设计与实现
  • ChatGLM3模型搭建教程
  • OpenCV结构分析与形状描述符(20)计算一个包围给定点集的最小外接圆函数minEnclosingCircle()的使用
  • 研1日记12
  • C++系列-函数对象/仿函数
  • [网络]TCP/IP协议 之 网络层IP协议(3)
  • 艾丽卡的区块链英语小课堂
  • 基于ssm+vue+uniapp的新生报到系统小程序
  • 第4步CentOS配置SSH服务用SSH终端XShell等连接方便文件上传或其它操作
  • 实战外网配置——光猫桥接+路由器PPPoE拨号+防火墙外网链路健康检查+外网流量负载均衡
  • kafka mirror maker之实现两个kafka集群之间的数据同步