alg2:选择排序法

1、运行时间

O(n*2)> 单次查找最小/大元素耗时O(n),排出一个有序列表需要进行n次操作,
平均耗时O(n*n)==O(n*2)

2、使用场景

可运用于无序列表,但不是最优解

3、代码实现

def search_min(array):"""查找列表中的最小数"""min_index = 0min_num = array[0]for i in range(len(array)):if array[i] < min_num:min_index = imin_num = array[i]array.pop(min_index)return min_numdef selection_sort(array):"""选择排序"""ordered_array = []for i in range(len(array)):min_num = search_min(array)ordered_array.append(min_num)return ordered_arrayif __name__ == "__main__":array = [1, 5, 28, 3, 55, 25, 3, 22, 32]ordered_array = selection_sort(array)print(ordered_array)

4、 关于数组与链表

每天5分钟玩转python3算法:选择排序相关推荐

  1. 每天5分钟玩转python3算法:二分查找法

    从今天开始,博主准备开始一段常见算法的学习,算法实现使用Python3,希望坚持下去^_^ alg1:二分查找法 1.运行时间 二分查找相比于依次查找,查询速度提升明显: + 依次查找:O(n) + ...

  2. C语言基础排序算法-选择排序

    C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...

  3. C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序

    常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...

  4. 数据结构与就算法(选择排序)

    数据结构与就算法(选择排序) 数据!您好 2019-01-07 05:16:18 2736 收藏 17 版权 1>什么是选择排序,选择排序和插入排序的思想差不多,也分已排序区间和未排序区间,只是 ...

  5. Java排序算法——选择排序

    Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...

  6. python排序算法-选择排序

    python排序算法-选择排序 一.选择排序 1.一趟排序纪录最小的数,放在第一个位置 2.再一次排序记录列表无序区最小的数,放在第二个位置 关键 有序区.无序区.无序区最小数的位置 代码 def s ...

  7. 十大经典排序算法-选择排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  8. 排序算法-选择排序-堆排序

    排序算法-选择排序-堆排序 堆排序是一种树型选择排序方法.在排序过程中,将 L [ 1... n ] L[1 ... n] L[1...n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点 ...

  9. 排序算法---选择排序(java版)

    简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...

最新文章

  1. matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)
  2. Jpa-操作mongodb
  3. Java_常遇问题(一)
  4. 中国数码摄像机市场趋势报告、技术动态创新及市场预测
  5. 利用Sen2cor工具对哨兵2影像进行大气校正和辐射校正
  6. 指导CoVaR,基于Copula、GARCH、DCC、分位数回归、藤VineCopula
  7. visio至word图片失真
  8. RabbitMQ-Plugin configuration unchanged.
  9. 数据库的设计关键点总结
  10. 插桩valgrind_基于动态插桩的CC++内存泄漏检测工具的设计与实现.pdf
  11. 群晖nas部署python项目
  12. 华为视频终端默认的Web页面用户名和密码是多少
  13. Calculator Conundrum
  14. 处理数据时,对数据取对数的意义
  15. 玩儿转ffmeg的7个技巧
  16. 微信小程序智慧新零售
  17. 流量累计程序 博途v15编写的西门子流量累计程序
  18. 最坏的少数民族,56个民族有哪个最坏
  19. 股票API下单接口是怎样传入交易数据的?
  20. NO.8 Android Opencv 眼球跟踪

热门文章

  1. 正则爬取京东商品信息并打包成.exe可执行程序。
  2. 判断闰年 及其某天为这一年的多少天
  3. C#多线程中lock的用法
  4. eclipse新建项目时JRE的三个选项分别是什么意思?
  5. OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码
  6. HTTPS访问站点,出现证书问题解决
  7. sqlserver中判断表是否存在
  8. Spring+hibernate里使用jdbc connection
  9. acwing算法题--混合背包问题
  10. OVS sflow(二十六)