python快速排序代码实例


Posted in Python onNovember 21, 2013

一、 算法描述:

1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。

 二、python快速排序代码

#!/usr/bin/python
# -*- coding: utf-8 -*-
def sub_sort(array,low,high):
    key = array[low]
    while low < high:
        while low < high and array[high] >= key:
            high -= 1
        while low < high and array[high] < key:
            array[low] = array[high]
            low += 1
            array[high] = array[low]
    array[low] = key
    return low

def quick_sort(array,low,high):
     if low < high:
        key_index = sub_sort(array,low,high)
        quick_sort(array,low,key_index)
        quick_sort(array,key_index+1,high)

if __name__ == '__main__':
    array = [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3]
    print array
    quick_sort(array,0,len(array)-1)
    print array

结果:
[8, 10, 9, 6, 4, 16, 5, 13, 26, 18, 2, 45, 34, 23, 1, 7, 3]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 16, 18, 23, 26, 34, 45]

Python 相关文章推荐
Python常用内置模块之xml模块(详解)
May 23 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 Python
快速查询Python文档方法分享
Dec 27 Python
pip matplotlib报错equired packages can not be built解决
Jan 06 Python
django 微信网页授权登陆的实现
Jul 30 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
python3的pip路径在哪
Jun 23 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
python中的时区问题
Jan 14 Python
python 获取域名到期时间的方法步骤
Feb 10 Python
Python字典和列表性能之间的比较
Jun 07 Python
python二分法实现实例
Nov 21 #Python
Python列表推导式的使用方法
Nov 21 #Python
python调用shell的方法
Nov 20 #Python
python和shell变量互相传递的几种方法
Nov 20 #Python
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 #Python
python从ftp下载数据保存实例
Nov 20 #Python
python正则表达式抓取成语网站
Nov 20 #Python
You might like
php+js实现异步图片上传实例分享
2014/06/02 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
JS往数组中添加项性能分析
2015/02/25 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
支教自我鉴定
2014/01/18 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
前台接待员岗位职责
2015/04/15 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers