Python代码实现选择排序算法
排序算法-选择排序
- 选择排序
- 将序列中的最大值找出,然后跟最后一个元素交换位置
- 循环执行步骤1
- 优化函数并封装成函数
# 步骤一
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代码实现选择排序算法相关推荐
- 【排序算法】python 十大经典排序算法(全网最详)
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序算法有:插入排序.希尔排序.选 ...
- C++常见排序算法——选择排序算法
首先说一下选择排序的基本算法思想: 如果有N个元素需要排序,那么首先从N个元素中找到最小的那个元素与第0位置上的元素交换,然后再从剩下的N-1个元素中找到最小的元素与第1位置上的元素交换,之后再从剩下 ...
- python 选择排序算法
一.选择排序(selection sort) 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位 ...
- python写选择排序_如何快速掌握python选择排序算法?
对于算法,我们不少讲述,但是大部分小伙伴都希望,将单个算法拆分讲解,这样可以更加深对算法的印象,好了,本期,就针对选择排序算法,给大家讲解说明哦~感兴趣的小伙伴一起来看下吧~ 在列表list模块中,已 ...
- 排序算法python实现_用Python,Java和C / C ++实现的选择排序算法
排序算法python实现 The Selection Sort Algorithm sorts the elements of an array. In this article, we shall ...
- 动图图解C语言选择排序算法,含代码分析
C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...
- 选择排序法python详解-Python选择排序算法(三)
优化选择排序算法,大致思路是每次循环分别找到最大值和最小值,放到列表的头部和尾部 代码如下: #! coding:utf8 import random def select_sort(arr): fo ...
- 选择排序java代码_JAVA简单选择排序算法原理及实现
简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...
- python选择排序算法图解_简单选择排序算法(C语言详解版)
该算法的实现思想为:对于具有 n 个记录的无序表遍历 n-1 次,第 i 次从无序表中第 i 个记录开始,找出后序关键字中最小的记录,然后放置在第 i 的位置上. 例如对无序表{56,12,80,91 ...
最新文章
- Microbiome:掠食性粘细菌通过调节土壤微生物群落来控制黄瓜枯萎病
- css伪类元素及选择器
- 小程序判断数组的index是否为空_微信小程序之购物车功能(仅学习)
- if else if else语句格式_如何“干掉”if...else
- 基于Rails的blog: typo
- 九阴真经 第十五层--node.js 第1天
- 使用Java 8 Lambda表达式将实体映射到DTO
- wxpython多线程消息传递_wxpython多线程间通信
- 洛谷入门题P1000、P1001、P1421、P1425题解(Java语言描述)
- react.js 给标识ref,获取内容
- Get_key.c模块流程
- [转] 跨域资源共享 CORS 详解
- ups维护服务器,UPS电源的在线维护和管理
- 金山云android连麦源代码,Android-SDK开发指南
- 使用EasyCHM破解版制作CHM帮助文档
- 考研词汇5500+地名
- it工种分类_科普篇!程序员都有哪些工种和类型呢?
- 怎么恢复oracle的包,Oracle的恢复管理器及DBMS_JOB包分析
- vps mysql_vps mysql自动关闭
- TP笔记5、模型 文件上传 分页 会话技术与验证码