一、选择排序

初始状态:有序区为空,无序区为[0,…,n]
每次找到无序区里的最小元素,添加到有序区的最后
重复前面 的步骤,直到排序完成

二、画图演示

三、代码块

def selectSort(nums):n=len(nums)   #数组的长度for i in range(n-1):    #排序的次数n-1#找无序区最小的元素min_idx=i  #代表无序区最小元素的索引for j in range(i+1,n):if nums[j]<nums[min_idx]:min_idx=j#执行完上面的循环后#min_idx就是无序区中最小元素的索引#把最小元素和有序区的后一个元素交换位置nums[i],nums[min_idx]=nums[min_idx],nums[i],test=[9,3,1,2,4,7]
selectSort(test)
print(test)

【python】数据结构与算法之选择排序相关推荐

  1. 数据结构与算法:选择排序

    数据结构与算法:选择排序 雪柯 大工生物信息 提笔为写给奋进之人 已关注 8 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国忠 特别备注:本书非原创,但部分内容自己 ...

  2. 数据结构与算法之选择排序

    数据结构与算法之选择排序 目录 基本介绍 选择排序思想 代码实现 1. 基本介绍 选择排序也属于内部排序法,是从排序的数据中,按指定的规则选出某一元素,再依次交换位置后达到排序的目的 2. 选择排序思 ...

  3. 数据结构与算法 | 直接选择排序、双向选择排序

    前几章讲了交换排序中较为复杂切高效的堆排序,这次就来讲讲选择排序中最简单的直接选择排序及其改进双向选择排序. 选择排序:顾名思义,就是主要通过选择来完成的排序,每一趟从待排数据中选择一个最大或者最小的 ...

  4. python数据结构与算法篇:排序

    1.冒泡排序(英语:Bubble Sort) 它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. ...

  5. 09_数据结构与算法_选择排序_Python实现

    """ 选择排序:思路:遍历整个列表,找到最小项的位置.如果该位置不是列表的第一个位置,算法就会交换这两个位置的项:然后算法回到第二个位置并重复这个过程 "&q ...

  6. 在路上---学习篇(一)Python 数据结构和算法 (4) --希尔排序、归并排序

    独白: 希尔排序是经过优化的插入排序算法,之前所学的排序在空间上都是使用列表本身.而归并排序是利用增加新的空间,来换取时间复杂度的减少.这俩者理念完全不一样,注定造成的所消耗的时间不同以及空间上的不同 ...

  7. 数据结构与算法之选择排序图文详解及代码 (C++实现)

    实现: #include<iostream> using namespace std; #define MAXSIZE 20//顺序表的最大长度 typedef int KeyType;/ ...

  8. python dict 排序原理_第一章Python数据结构和算法(字典排序)

    字典排序 问题 你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序. 解决方案 为了能控制一个字典中元素的顺序,你可以使用 collections 模块中的OrderedDict 类 ...

  9. python数据结构与算法13_python 数据结构与算法 (13)

    python 数据结构与算法 (13) 选择排序 (Selection sort) 是? 种简单直观的排序算法. 它的? 作原理如 下.? 先在未排序序列中找到最?(?)元素, 存放到排序序列的起始位 ...

最新文章

  1. windows下备份Mysql数据的脚本
  2. 高德地图天气图标符号大全_共享雨伞,高德这波营销格外暖!
  3. 齐家网困境:进退两难,合作方和消费者两头都不讨好?
  4. C++ I/O语法及其用法
  5. 045魔法方法:属性访问
  6. HDU - 4547 CD操作(LCA模板)
  7. Handshake failed due to invalid Upgrade header: null 解决方案
  8. 迷茫时,按照这7个方法寻找方向
  9. 计算机组成原理 第三章 存储系统
  10. 学会科学饮水令你越喝越美
  11. 基于Java分词的ikanalyzer工具
  12. (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  13. 线材检测项目(基于QT)
  14. 微信小程序 开发者工具和真机调试都能正常请求访问,线上不能登录请求问题
  15. 7-2 地下迷宫探索
  16. 喷淋系统在安装算量软件中如何计算工程量?
  17. java文件写入不覆盖_java写入文件不覆盖写入_Java写入文件–用Java写入文件的4种方法...
  18. electron 文件另存为
  19. 高分一号数据的预处理
  20. 奈学教育大数据架构分享下载

热门文章

  1. mysql 杀存储过程进程_SQL SERVER 杀死锁进程存储过程
  2. 一图读懂 | 2030年前碳达峰行动方案
  3. 重新考虑数据中心的冷却方案—水冷却或将再次兴起
  4. 30KVA UPS电源安装电线的配置
  5. python定义链表节点_Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】...
  6. python读取data_转载 “ 理想国@Data ”重拾Python(5):数据读取 博客
  7. ML:文本、图像等数值化数据相似度计算之余弦相似度计算三种python代码实现
  8. NLP:自然语言处理技术近十年发展技术更迭的简介、案例之详细攻略(持续更新)
  9. Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)
  10. DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测