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符串操作教程(Python3.5运算符操作实例详解)
- docker python如何运行(Docker容器化部署Python应用过程解析)
- python pyqt 教程(Python+PyQt5实现美剧爬虫可视工具的方法)
- python如何编写判断正负数程序(Python实现判断一个整数是否为回文数算法示例)
- 从零开始学activemq(ActiveMQ:使用Python访问ActiveMQ的方法)
- python图像仿射变换(详解Python计算机视觉 图像扭曲仿射扭曲)
- python数组与矩阵转换(python 读取文件并把矩阵转成numpy的两种方法)
- pythonpulp怎么使用(pyhanlp安装介绍和简单应用)
- python操作mysql连接池(详解Python连接MySQL数据库的多种方式)
- python表白代码演示(python3实现表白神器)
- python实现的数据结构(Python嵌套式数据结构实例浅析)
- python 从入门到实践笔记(python基础梳理一推荐)
- pyqt5怎么在pycharm中安装(pycharm+PyQt5+python最新开发环境配置踩坑)
- python中统计一个字符出现的次数(Python统计一个字符串中每个字符出现了多少次的方法字符串转换为列表再统计)
- 学python从零基础到开发游戏(python开发游戏的前期准备)
- python完整异常机制(深入理解Python异常处理的哲学)
- 三部冷门谍战剧,第一部2014年拍摄,至今还未播出(三部冷门谍战剧)
- 《金陵秘事》的剧情跌宕起伏 给观众带来的怎样的感官体验(金陵秘事的剧情跌宕起伏)
- 少儿口才表达影响未来一生,50首经典绕口令和孩子玩出聪明大脑(少儿口才表达影响未来一生)
- 玩网游居然让人更友善 很难以让人置信(玩网游居然让人更友善)
- 学好汉语拼音,从娃娃绕口令抓起,平时还是要多练 收藏好(从娃娃绕口令抓起)
- 仙女们的私藏鲜法大PK 鲜香切块牛肉(仙女们的私藏鲜法大PK)
热门推荐
- mysql利用数据库日志恢复数据(MySQL通过binlog恢复数据)
- docker容器状态显示(Docker consul的容器服务更新与发现的问题小结)
- dedecms列表样式修改(dedecms5.7sp1评论添加字段的实现方法)
- javascript五大继承方式(原生Javascript实现继承方式及其优缺点详解)
- vscode报错提示框(关于在vscode使用webpack指令显示"因为在此系统中禁止运行脚本"问题)
- ASP.NET mvc异常处理的方法
- web安全常见的测试工具有哪些(Web压力测试工具:http_load、webbench、ab、Siege使用方法)
- vueassets文件路径(vue如何根据url下载非同源文件)
- Asp.Net实现网站的快捷方式
- iis安全包括哪些方面(使用华盾IIS备份还原工具备份还原IIS站点图解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9