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 文件重命名工具代码
Jul 26 Python
Python读取一个目录下所有目录和文件的方法
Jul 15 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
Python的垃圾回收机制详解
Aug 28 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
Python异常类型以及处理方法汇总
Jun 05 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学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
jquery text()要注意啦
2009/10/30 Javascript
JS 表单验证大全
2011/11/23 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
Python实现CET查分的方法
2015/03/10 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
人事主管的岗位职责
2013/11/16 职场文书
学生喝酒检讨书
2014/02/06 职场文书
房屋租赁意向书
2014/04/01 职场文书
离婚协议书范文2014
2014/10/16 职场文书
教师工作证明范本
2015/06/12 职场文书
张丽莉观后感
2015/06/16 职场文书
环境卫生整治简报
2015/07/20 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python