选择排序算法的工作原理如下:

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]))

最新文章

  1. jquery编写插件的方法
  2. 关于激活Bentley软件详细步骤介绍(再补充一个)
  3. 转载:JavaSE之反射
  4. CheckBoxList 用法
  5. [3]MVC3中使用Telerik(转)
  6. [codeforces 235]A. LCM Challenge
  7. Python装饰器通用样式
  8. HDU 4571 Travel in time ★(2013 ACM/ICPC长沙邀请赛)
  9. Javascript数组,String对象,Math对象,Date对象,正则表达式
  10. 舍伍德(Sherwood)算法学习笔记
  11. Document原来可以这样来获取DOM
  12. Android自定义UI的实现和应用
  13. PAT (Advanced Level) 1025. PAT Ranking (25)
  14. TensorFlow安装配置,茫茫人海中一瞥
  15. zabbix通过agent添加监控项的步骤
  16. Nginx+Keepalived(二)
  17. 如何在Android中的Activity启动第三方应用程序?
  18. Swagger注解
  19. FTP主动模式与被动模式,及java FTPClient模式设置
  20. selenium之批量执行测试用例

热门文章

  1. mysql(2):索引
  2. 1.EntityManaget的persist和merge方法的区别
  3. SQL注入 盲注
  4. Drf小结
  5. php中文乱码问题的终极解决方案汇总
  6. 8.1.1 IO
  7. $ ssh -T -v git@github.com_在本地用ssh连接github出错_git@github.com: Permission denied (publickey).
  8. sudo用户找不到环境变量 sudo找不到/usr/local/bin 下的执行文件,
  9. 【转载】Java反射机制详解
  10. codeforces 1204C Anna, Svyatoslav and Maps(floyd+dp)