排序算法之选择排序的python实现
2024-08-30 04:24:38
选择排序算法的工作原理如下:
1. 首先在序列中找到最小或最大元素,存放到排序序列的前或后。
2. 然后,再从剩余元素中继续寻找最小或最大元素。
3. 然后放到已排序序列的末尾。
4. 以此类推,直到所有元素均排序完毕。
例子图步骤如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "hsz" def select_sort(alist):
n = len(alist)
# 外层控制比较几轮
for j in range(n - 1):
min_index = j
# 内层控制元素比较和更新索引
for i in range(j + 1, n):
# 进行比较
if alist[min_index] > alist[i]: # 大于为正序 小于为倒序(小于为max_index)
# 更新索引
min_index = i
# 退出循环后,交换数据
alist[j], alist[min_index] = alist[min_index], alist[j]
# print(alist[j]) if __name__ == '__main__':
# li = [3, 11, 26, 26, 7, 3, 9, 4]
li = [26, 54, 93, 17, 31, 44, 55, 20]
# print(id(li[0]))
print(li)
select_sort(li)
print(li)
# print(id(li[0]))
最新文章
- jquery编写插件的方法
- 关于激活Bentley软件详细步骤介绍(再补充一个)
- 转载:JavaSE之反射
- CheckBoxList 用法
- [3]MVC3中使用Telerik(转)
- [codeforces 235]A. LCM Challenge
- Python装饰器通用样式
- HDU 4571 Travel in time ★(2013 ACM/ICPC长沙邀请赛)
- Javascript数组,String对象,Math对象,Date对象,正则表达式
- 舍伍德(Sherwood)算法学习笔记
- Document原来可以这样来获取DOM
- Android自定义UI的实现和应用
- PAT (Advanced Level) 1025. PAT Ranking (25)
- TensorFlow安装配置,茫茫人海中一瞥
- zabbix通过agent添加监控项的步骤
- Nginx+Keepalived(二)
- 如何在Android中的Activity启动第三方应用程序?
- Swagger注解
- FTP主动模式与被动模式,及java FTPClient模式设置
- selenium之批量执行测试用例
热门文章
- mysql(2):索引
- 1.EntityManaget的persist和merge方法的区别
- SQL注入 盲注
- Drf小结
- php中文乱码问题的终极解决方案汇总
- 8.1.1 IO
- $ ssh -T -v git@github.com_在本地用ssh连接github出错_git@github.com: Permission denied (publickey).
- sudo用户找不到环境变量 sudo找不到/usr/local/bin 下的执行文件,
- 【转载】Java反射机制详解
- codeforces 1204C Anna, Svyatoslav and Maps(floyd+dp)