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 常用模块函数(Python OOP类中的几种函数或方法总结)
- python 二叉树的深度遍历(python 将有序数组转换为二叉树的方法)
- python中if的条件语句(浅谈Python的条件判断语句if/else语句)
- 抖音上很火的表白程序链接(我喜欢你 抖音表白程序python版)
- 如何用python爬取最新电影(详解Python爬取并下载《电影天堂》3千多部电影)
- python的turtle库怎么进入(python的turtle库使用详解)
- python爬虫模块教程(Python爬虫之UserAgent的使用实例)
- python怎样读取mysql数据(使用Python将Mysql的查询数据导出到文件的方法)
- python中列表remove的用法汇总(对python_discover方法遍历所有执行的用例详解)
- python plot绘图(python使用Plotly绘图工具绘制气泡图)
- python3简单编程(Python3.5面向对象编程图文与实例详解)
- python3常用内建函数(Python3中函数参数传递方式实例详解)
- python中如何定义带走参数的函数(Python函数定义及传参方式详解4种)
- python 二维数组怎么取第二列(python实现二维数组的对角线遍历)
- python创建列表并查询(python列表使用实现名字管理系统)
- python冒泡排序代码通俗理解(详解python算法之冒泡排序)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 节日我在岗|警景相融 平安相伴(节日我在岗警景相融)
- 战 疫 时刻 致敬每一位石化大学的 守护者(战疫时刻)
- 老弄堂里的市井味道(老弄堂里的市井味道)
- 小米音乐可绑定QQ音乐, QQ音乐 真的会消失在小米的设备上吗(小米音乐可绑定QQ音乐)
- 小米Watch S1评测 或许能成为小米冲击高端可穿戴设备的里程碑(小米WatchS1评测或许能成为小米冲击高端可穿戴设备的里程碑)
热门推荐
- dedecms怎么判断授权(DedeCms模板防盗以及安全设置的一些小技巧)
- mysql锁机制图解(详解mysql 中的锁结构)
- table单元格固定宽度
- dedecms关键词限制(dedecms tag标签伪静态的修改方法)
- 详解JS中你不知道的各种循环测速(详解JS中你不知道的各种循环测速)
- docker和golang哪个好(使用Golang玩转Docker API的实践)
- h5移动端开发app(移动端H5唤起APP的写法实例IOS、android)
- SQL Having的用法
- docker 跨主机的网络通信(docker 基于golang镜像构建 ssh服务的方法)
- docker容器设置端口(Docker 实现容器端口绑定本地端口)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9