python的几种常用排序算法
1、插入排序
def insert_sort(arr):for i in range(1, len(arr)):current = arr[i]pre_index = i - 1while pre_index > 0 and arr[pre_index] > current:arr[pre_index + 1] = arr[pre_index]pre_index -= 1arr[pre_index + 1] = currentreturn arr
2、选择排序
def select_sort(arr):for i in range(len(arr)):min_index = ifor j in range(j, len(arr)):if arr[j] < arr[min_index]:min_index = jarr[min_index], arr[i] = arr[i], arr[min_index]return arr
3、冒泡排序
def bubble_sort(arr):for i in range(len(arr) - 1):for j in range(len(arr)-1-i):if arr[j] > arr[j+1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]return arr
4、快排
def quick_sort(arr):if len(arr) < 2:return arrelse:middle = arr[0]left = [i for i in arr[1:] if i < middle]right = [i for i in arr[1:] if i > middle]return quick_sort(left) + [middle] + quick_sort(right)
python的几种常用排序算法相关推荐
- [转载] java实现四种常用排序算法
参考链接: 用Java排序 四种常用排序算法 ##注:从小到大排 ##冒泡排序## 特点:效率低,实现简单 思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有 ...
- 3min利用Python实现9种经典排序算法可视化!(附源代码)
来源:恋习Python 本文附视频,建议收藏. 本文为你分享实现9种经典排序算法可视化的方法,3分钟即可实现. [导 读]近在某网站上看到一个视频,是关于排序算法的可视化的,看着挺有意思的,也特别喜感 ...
- 视觉直观感受7种常用排序算法
视觉直观感受若干常用排序算法 1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状 ...
- 8种常用排序算法稳定性分析
选择排序.快速排序.希尔排序.堆排序不是稳定的排序算法 冒泡排序.插入排序.归并排序和基数排序都是稳定的排序算法. [1]为什么要区分排序算法的稳定性? 排序算法的稳定性通俗地讲就是能保证排序前两个相 ...
- 排序算法—Python实现十大常用排序算法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天将为大家介绍常用的十大排序算法中最简单的五种(冒泡.选择.插入 ...
- 排序算法——(2)Python实现十大常用排序算法
上期为大家讲解了排序算法常见的几个概念: 相关性:排序时是否需要比较元素 稳定性:相同元素排序后是否可能打乱 时间空间复杂度:随着元素增加时间和空间随之变化的函数 如果有遗忘的同学可以看排序算法--( ...
- 五种常用排序算法总结
本篇文章讲的是以下五种常用的排序算法: 一.冒泡排序 1.原理 每次从前往后遍历整个数组,每一项与其后一项进行对比,若符合要求(从大到小或从小到大),就交换位置. 一遍循环结束后,最大(小)的值就会被 ...
- 【轻松学排序算法】眼睛直观感受几种常用排序算法(转)
1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通 ...
- 八种常用排序算法参考
写在前面: 因为网络上有很多篇讲排序算法的,所以这里就不详细讲了,只作为参考和自己查阅 当然了,虽然篇幅也会短很多,但部分重点和要点还在 八种排序算法分别是: ①选择排序: ②冒泡排序: ③插入排序: ...
最新文章
- C++知识点28——使用C++标准库(再谈迭代器)
- webpack4--提取css到单独文件并且压缩css
- linux进去网卡,Linux上使用socket进行网卡抓包
- .Net Core小技巧 - Swagger适配虚拟目录及二级目录
- python不及格_10 个 Python 工程师,9 个不合格!!
- java InputStream的使用
- 可以让SQL针对某个错误信息号抓DUMP的命令组合
- 牛客练习赛 57——manacher算法 树形dp?
- discuz和php的区别,discuz和phpwind优劣比较
- CentOS 6.5 安装Python 3.5
- guava限流器RateLimiter原理及源码分析
- jmeter中通过命令方式生成结果文件
- JavaScript高级程序设计(第3版).pdf
- ASP编程实现各家快递公司订单状态查询
- h5 点击按钮生成图片分享微信朋友圈
- e430c更换光盘托架_如何处理PC上未使用的光盘驱动器托架
- 使用FFmpeg合并/解密/下载m3u8文件转为mp4格式
- neo4j学习总结--第三课 Cypher(CQL)命令一
- fastjson不序列化空属性,解决办法
- tmdb电影票房_TMDb Vue.js应用程序:电影数据库应用程序
热门文章
- 小程序的尺寸单位rpx和px
- c语言小狗字符画,谁能帮忙做个小狗的字符画?谢谢
- 劳务建筑行业的数字化转型之路,零代码起关键作用
- 浪潮智慧城市齐鲁研究院正式成立;智能汽车软件平台公司Eatron完成1100万美元A轮融资 | 全球TMT...
- vue中使用TcPlayer,自动播放视频,以及下一个视频
- 视频技术系列 - 谈显示屏技术
- 计算机毕业设计开题报告的撰写步骤和内容要求
- 方舟编译器分析二——编译器安装与使用
- python web笔记
- 打开mysql命令_Mysql命令大全(详细篇)