python选择排序最大最小同时排序(Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例)
类别:脚本大全 浏览量:2194
时间:2021-10-16 00:55:42 python选择排序最大最小同时排序
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例本文实例讲述了python实现的插入排序,冒泡排序,快速排序,选择排序算法。分享给大家供大家参考,具体如下:
|
#!/usr/bin/python # coding:utf-8 #直接插入排序 def insert_sort( list ): for i in range ( len ( list )): key = list [i] #待插入元素 j = i - 1 while (key < list [j] and j > = 0 ): list [j + 1 ] = list [j] #后移元素 list [j] = key j = j - 1 return list #冒泡排序 def bubble_sort( list ): for i in range ( 1 , len ( list )): for j in range ( len ( list ) - i): if list [j] > list [j + 1 ]: list [j + 1 ], list [j] = list [j], list [j + 1 ] return list #快速排序 def position_key( list , low, high): i = low j = high key = list [low] while (i < j): while (i < j and list [j] > = key): #从右向左,寻找第一个小于基准元素的数据索引。 注意:i<y 的判断,内循环更新j j - = 1 if i < j : list [i] = list [j] while (i<j and list [i] < = key): #从左向右,寻找地一个大于基准元素的数据索引。i<y同上 i + = 1 if i < j: list [j] = list [i] list [j] = key # 基准元素位置 return j def quick_sort( list , low, high): if low < high: position = position_key( list , low, high) #将数据分成前后两个子序列(前边序列值均小于后边序列) quick_sort( list , low, position - 1 ) #将前面的序列快速排序 quick_sort( list , position + 1 , high) #将后面的序列快速排序 return list #选择排序 def select_sort( list ): for i in range ( len ( list )): for j in range (i, len ( list )): if list [i] > list [j]: list [i], list [j] = list [j], list [i] return list list = [ 23 , 232 , 11 , 89 , 121 , 64 , 34 , 12 , 23423 , 2312 , 167 , 768 , 932 , 346 , 32789 , 335 , 2 , 1145 , 34 , 56 , 99 , 111 ] print '原始序列 :' , list print '直接插入排序:' , insert_sort( list ) print '冒泡排序 :' , bubble_sort( list ) print '快速排序 :' , quick_sort( list , 0 , len ( list ) - 1 ) print '选择排序 :' , select_sort( list ) |
结果如下:
原始序列 : [23, 232, 11, 89, 121, 64, 34, 12, 23423, 2312, 167, 768, 932, 346, 32789, 335, 2, 1145, 34, 56, 99, 111]
直接插入排序: [2, 11, 12, 23, 34, 34, 56, 64, 89, 99, 111, 121, 167, 232, 335, 346, 768, 932, 1145, 2312, 23423, 32789]
冒泡排序 : [2, 11, 12, 23, 34, 34, 56, 64, 89, 99, 111, 121, 167, 232, 335, 346, 768, 932, 1145, 2312, 23423, 32789]
快速排序 : [2, 11, 12, 23, 34, 34, 56, 64, 89, 99, 111, 121, 167, 232, 335, 346, 768, 932, 1145, 2312, 23423, 32789]
选择排序 : [2, 11, 12, 23, 34, 34, 56, 64, 89, 99, 111, 121, 167, 232, 335, 346, 768, 932, 1145, 2312, 23423, 32789]
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/King0217/article/details/78785293
您可能感兴趣
- python操作json格式(详解python 3.6 安装json 模块simplejson)
- python爬网验证码在哪里(详解python 爬取12306验证码)
- python3.9.6生成的注册表(厉害了,Python也能操作注册表)
- pythonpickle使用方法(Python supervisor强大的进程管理工具的使用)
- python删除数据框重复变量(Python3删除排序数组中重复项的方法分析)
- python获取微信用户(python-itchat 获取微信群用户信息的实例)
- pythonsocket建立多用户通讯(Python socket实现多对多全双工通信的方法)
- python编写程序读写数据库(详解js文件通过python访问数据库方法)
- python安装pil模板教程(详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决)
- python如何判断文件是否结束(python判断文件是否存在,不存在就创建一个的实例)
- python计算1到10的阶乘的和(python计算阶乘和的方法1!+2!+3!+...+n!)
- python樱花绽放代码(新年快乐! python实现绚烂的烟花绽放效果)
- python成绩判断系统(Python根据成绩分析系统浅析)
- python爬虫怎么设置代理ip(python爬虫简单的添加代理进行访问的实现代码)
- python怎么抽取微信图片(Python 一键制作微信好友图片墙的方法)
- python本地ocr库(详解Python安装tesserocr遇到的各种问题及解决办法)
- 《刘老根3》热播,去世15年的她却再次被 伤害(去世15年的她却再次被)
- 十二星座爱情支配欲指数(十二星座爱情支配欲指数)
- 虐待儿童是发泄支配欲的愚蠢行为(虐待儿童是发泄支配欲的愚蠢行为)
- 你或许不知道你隐藏的支配欲望(你或许不知道你隐藏的支配欲望)
- 把宽体丰田86卖了,换成7.5代高尔夫GTI玩起姿态与性能并存的改装(把宽体丰田86卖了)
- 大众推出了第五代高尔夫GT(大众推出了第五代高尔夫GT)
热门推荐
- 宝塔关闭网站日志(BT宝塔面板下关闭默认404页面方法)
- webview上传功能教程(关于webview适配H5上传照片或者视频文件的方法)
- openssl 默认私钥类型(Windows安装Openssl并使用Openss生成公钥私钥)
- linux安装phpstudy(PHPStudy下如何为Apache安装SSL证书的方法步骤)
- web前端开发怎么算乘法(如何计算Web动画帧率FPS)
- $.ajax的用法
- nodejs数据采集(nodejs获取表单数据的三种方法实例)
- dede标签调用方法(DEDE热门tag,DEDE首页digg,DEDE随机热门关键字调用方法)
- centos装docker稳定吗(Centos8无法安装docker问题的解决方法)
- mysql索引原理及调优(MySQL索引机制程序员必知)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9