排序算法-选择排序

  • 选择排序

    1. 将序列中的最大值找出,然后跟最后一个元素交换位置
    2. 循环执行步骤1
    3. 优化函数并封装成函数
# 步骤一
lst = [2, 5, 33, 6, 3, 8]index = 0  # 定义一个存放最大值的索引值的变量,默认为0
for i in range(len(lst) - 1):if lst[i + 1] > lst[index]:index = i + 1# 结束完循环之后index为最大值的索引值
lst[index], lst[len(lst) - 1] = lst[len(lst) - 1], lst[index]
print(lst)  # [2, 5, 8, 6, 3, 33]  此时将最大值放到了列表最后# 步骤二
lst = [2, 5, 33, 6, 3, 8]
for i in range(len(lst) - 1):index = 0  # 定义一个存放最大值的索引值的变量,默认为0for j in range(len(lst) - 1 - i):# 当循环第一次时,i=0,需要循环整个列表才能找出最大值# 当循环第二次时,i=1,不需要循环最后一个元素,因为最后一个元素一定是最大的# ...if lst[j + 1] > lst[index]:index = j + 1# 结束完循环之后index为最大值的索引值,将最大值放置参加循环的最后一位lst[index], lst[len(lst) - 1 - i] = lst[len(lst) - 1 - i], lst[index]
print(lst)  # [2, 3, 5, 6, 8, 33]  成功实现# 步骤三(完整代码)
def sort(lst):n = len(lst)for i in range(n - 1):index = 0for j in range(n - 1 - i):if lst[j + 1] > lst[index]:index = j + 1lst[index], lst[n - 1 - i] = lst[n - 1 - i], lst[index]return lstlst = [2, 5, 33, 6, 3, 8]
print(sort(lst))  # [2, 3, 5, 6, 8, 33]

Python代码实现选择排序算法相关推荐

  1. 【排序算法】python 十大经典排序算法(全网最详)

    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序算法有:插入排序.希尔排序.选 ...

  2. C++常见排序算法——选择排序算法

    首先说一下选择排序的基本算法思想: 如果有N个元素需要排序,那么首先从N个元素中找到最小的那个元素与第0位置上的元素交换,然后再从剩下的N-1个元素中找到最小的元素与第1位置上的元素交换,之后再从剩下 ...

  3. python 选择排序算法

    一.选择排序(selection sort) 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位 ...

  4. python写选择排序_如何快速掌握python选择排序算法?

    对于算法,我们不少讲述,但是大部分小伙伴都希望,将单个算法拆分讲解,这样可以更加深对算法的印象,好了,本期,就针对选择排序算法,给大家讲解说明哦~感兴趣的小伙伴一起来看下吧~ 在列表list模块中,已 ...

  5. 排序算法python实现_用Python,Java和C / C ++实现的选择排序算法

    排序算法python实现 The Selection Sort Algorithm sorts the elements of an array. In this article, we shall ...

  6. 动图图解C语言选择排序算法,含代码分析

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  7. 选择排序法python详解-Python选择排序算法(三)

    优化选择排序算法,大致思路是每次循环分别找到最大值和最小值,放到列表的头部和尾部 代码如下: #! coding:utf8 import random def select_sort(arr): fo ...

  8. 选择排序java代码_JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  9. python选择排序算法图解_简单选择排序算法(C语言详解版)

    该算法的实现思想为:对于具有 n 个记录的无序表遍历 n-1 次,第 i 次从无序表中第 i 个记录开始,找出后序关键字中最小的记录,然后放置在第 i 的位置上. 例如对无序表{56,12,80,91 ...

最新文章

  1. Microbiome:掠食性粘细菌通过调节土壤微生物群落来控制黄瓜枯萎病
  2. css伪类元素及选择器
  3. 小程序判断数组的index是否为空_微信小程序之购物车功能(仅学习)
  4. if else if else语句格式_如何“干掉”if...else
  5. 基于Rails的blog: typo
  6. 九阴真经 第十五层--node.js 第1天
  7. 使用Java 8 Lambda表达式将实体映射到DTO
  8. wxpython多线程消息传递_wxpython多线程间通信
  9. 洛谷入门题P1000、P1001、P1421、P1425题解(Java语言描述)
  10. react.js 给标识ref,获取内容
  11. Get_key.c模块流程
  12. [转] 跨域资源共享 CORS 详解
  13. ups维护服务器,UPS电源的在线维护和管理
  14. 金山云android连麦源代码,Android-SDK开发指南
  15. 使用EasyCHM破解版制作CHM帮助文档
  16. 考研词汇5500+地名
  17. it工种分类_科普篇!程序员都有哪些工种和类型呢?
  18. 怎么恢复oracle的包,Oracle的恢复管理器及DBMS_JOB包分析
  19. vps mysql_vps mysql自动关闭
  20. TP笔记5、模型 文件上传 分页 会话技术与验证码

热门文章

  1. MTCTF2022-pwn
  2. Java main方法
  3. 新零售mysql设计(快递表 退货表)
  4. X、elua解析器开源文档:合集
  5. Python爬虫:bs4解析
  6. 狗年拜年php源码,2018狗年拜年祝福语大全
  7. 图像预处理之减去RGB均值
  8. 《吴军阅读与写作讲义》读后感
  9. 团队项目第2组-Alpha阶段规划与进度管理
  10. 知识星球Lottery分布式抽奖系统项目-Note-问题描述/解决方案/Note/Question