python排序的三种方法(Python实现插入排序和选择排序的方法)
类别:脚本大全 浏览量:2648
时间:2021-10-03 01:40:08 python排序的三种方法
Python实现插入排序和选择排序的方法话不多说,让我们从最基本的排序算法开始吧
插入排序
如下图所示,插入排序的实现思路顾名思义,就是 不断地在一个已经是有序的数组中,寻找合适位置并插入新元素 。
具体实现步骤为:
首先我们把整个数组拆分为有序区间和未排序区间,有序区间在插入排序一开始只有一个元素,就是数组的第一个元素。
接在有序区间之后的一个元素就是准备插入的元素,在图中就是标为绿色的元素,在有序区间内寻找位置并插入。
其寻找逻辑为:从后往前依次进行比较,如果待插入元素大于当前元素,则将待插入元素插入到当前元素的后一位,如果待插入元素小于当前元素,则将当前元素后移一位。不断重复该过程直至到数组的最后一位
其实现的具体代码为:
|
def insertion_sort(a): length = len (a) if length < = 1 : return for i in range ( 1 ,length): j = i - 1 value = a[i] while j > = 0 : if a[j]<value: a[j + 1 ] = value break else : a[j + 1 ] = a[j] if j = = 0 : a[j] = value j - = 1 print (a) |
return a时间复杂计算为:我们需要将整个数组遍历一遍,所以这一部分为o(n),在每一次遍历中都要执行一次插入操作,其时间复杂度为o(n),所以总时间复杂度为o(n2)
选择排序
选择排序跟插入排序算法类似,都是将数组分为有序区间和未排序区间,区别在于插入排序是将一个新元素插入到有序区间内,而选择排序则是在未排序区间中找到最小元素,并交换到有序区间之后。
实现代码为:
|
def selection_sort(a): length = len (a) if length < = 1 : return for i in range ( 0 ,length - 1 ): min_value = a[i] min_index = i j = i + 1 while j<length: if a[j] < min_value: min_value = a[j] min_index = j j + = 1 a[i],a[min_index] = a[min_index],a[i] |
return a时间复杂度计算:数组长度为n,一共需要寻找n次最小值,每次寻找最小值都要遍历未排序区间一次,其时间复杂度为o(n),乘以n次为o(n2)
原文链接:https://segmentfault.com/a/1190000019151804
您可能感兴趣
- pythonredis列表(Python redis操作实例分析连接、管道、发布和订阅等)
- python 获取ip mac 地址(Python3获取电脑IP、主机名、Mac地址的方法示例)
- 微信公众号文章 爬虫(python抓取搜狗微信公众号文章)
- python怎么提取微信数据(使用Python+wxpy 找出微信里把你删除的好友实例)
- python取当前日期(Python实现根据日期获取当天凌晨时间戳的方法示例)
- python给一个数字md5加密(Python写一个基于MD5的文件监听程序)
- python 怎么解析中文(Python中一般处理中文的几种方法)
- 使用python爬取网易云音乐(15行Python代码实现网易云热门歌单实例教程)
- python图片模板匹配(python实现简单图片物体标注工具)
- python零基础入门五小时(从0开始的Python学习016异常)
- python3.7保存文件(详解用python实现基本的学生管理系统文件存储版python3)
- python 循环遍历新方法(python for 循环获取index索引的方法)
- python自动计算机器人(python实现nao机器人手臂动作控制)
- python基本数据结构(浅谈Python编程中3个常用的数据结构和算法)
- markdown和python的关系(解决python Markdown模块乱码的问题)
- python中dict怎么创建(Python数据类型之Dict字典实例详解)
- 袁冰妍轧戏 拍《琉璃》的同时还在拍《将夜》,难怪被骂演技差(拍琉璃的同时还在拍将夜)
- 刚红就耍大牌,《琉璃》角色滤镜碎一地,心疼工作人员(琉璃角色滤镜碎一地)
- 袁冰妍郑业成这对可以处,有脸红情话他们是真的敢说(袁冰妍郑业成这对可以处)
- 《祝卿好》台词又土又甜,就喜欢这么直接的恋爱(祝卿好台词又土又甜)
- 大女主 汤唯垂青电视圈,搭档朱亚文出演《大明皇妃孙若微传》(汤唯垂青电视圈)
- 红色代表什么(红色代表什么情感和含义)
热门推荐
- 盘点CSS Selectors Level4中新增的选择器(盘点CSS Selectors Level4中新增的选择器)
- 使用Console命令调试JS
- python使用aes加密解密(python实现AES和RSA加解密的方法)
- python默认缩进设置(不归路系列:Python入门之旅-一定要注意缩进!!!推荐)
- python使用什么函数定义匿名函数(Python匿名函数及应用示例)
- 面试的最后,HR问你还有什么问题要问,该怎么回答?
- phpsession怎么用(PHP实现提高SESSION响应速度的几种方法详解)
- 用python实现atm银行系统(Python实现的银行系统模拟程序完整案例)
- vueassets文件路径(vue如何根据url下载非同源文件)
- apache服务器配置https(Apache Rewrite url重定向功能的简单配置)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9