每天5分钟玩转python3算法:选择排序
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算法:选择排序相关推荐
- 每天5分钟玩转python3算法:二分查找法
从今天开始,博主准备开始一段常见算法的学习,算法实现使用Python3,希望坚持下去^_^ alg1:二分查找法 1.运行时间 二分查找相比于依次查找,查询速度提升明显: + 依次查找:O(n) + ...
- C语言基础排序算法-选择排序
C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...
- C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序
常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...
- 数据结构与就算法(选择排序)
数据结构与就算法(选择排序) 数据!您好 2019-01-07 05:16:18 2736 收藏 17 版权 1>什么是选择排序,选择排序和插入排序的思想差不多,也分已排序区间和未排序区间,只是 ...
- Java排序算法——选择排序
Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...
- python排序算法-选择排序
python排序算法-选择排序 一.选择排序 1.一趟排序纪录最小的数,放在第一个位置 2.再一次排序记录列表无序区最小的数,放在第二个位置 关键 有序区.无序区.无序区最小数的位置 代码 def s ...
- 十大经典排序算法-选择排序算法详解
十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...
- 排序算法-选择排序-堆排序
排序算法-选择排序-堆排序 堆排序是一种树型选择排序方法.在排序过程中,将 L [ 1... n ] L[1 ... n] L[1...n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点 ...
- 排序算法---选择排序(java版)
简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...
最新文章
- matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)
- Jpa-操作mongodb
- Java_常遇问题(一)
- 中国数码摄像机市场趋势报告、技术动态创新及市场预测
- 利用Sen2cor工具对哨兵2影像进行大气校正和辐射校正
- 指导CoVaR,基于Copula、GARCH、DCC、分位数回归、藤VineCopula
- visio至word图片失真
- RabbitMQ-Plugin configuration unchanged.
- 数据库的设计关键点总结
- 插桩valgrind_基于动态插桩的CC++内存泄漏检测工具的设计与实现.pdf
- 群晖nas部署python项目
- 华为视频终端默认的Web页面用户名和密码是多少
- Calculator Conundrum
- 处理数据时,对数据取对数的意义
- 玩儿转ffmeg的7个技巧
- 微信小程序智慧新零售
- 流量累计程序 博途v15编写的西门子流量累计程序
- 最坏的少数民族,56个民族有哪个最坏
- 股票API下单接口是怎样传入交易数据的?
- NO.8 Android Opencv 眼球跟踪