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小技巧之批量抓取美女图片
Jun 06 Python
Python实现从订阅源下载图片的方法
Mar 11 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
Python文件处理
Feb 29 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
浅析python中的分片与截断序列
Aug 09 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
python+opencv+caffe+摄像头做目标检测的实例代码
Aug 03 Python
Python基础学习之函数方法实例详解
Jun 18 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
快速了解Python开发环境Spyder
Jun 29 Python
如何利用python检测图片是否包含二维码
Oct 15 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP设计聊天室步步通
2006/10/09 PHP
php学习之运算符相关概念
2011/06/09 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
php防止sql注入简单分析
2015/03/18 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
jquery实现简单实用的轮播器
2017/05/23 jQuery
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
react native 仿微信聊天室实例代码
2019/09/17 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
简单了解python的一些位运算技巧
2019/07/13 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
工程造价专业大专生求职信
2013/10/06 职场文书
六年级数学教学反思
2014/02/03 职场文书
幼儿园小班评语
2014/04/18 职场文书
南极大冒险观后感
2015/06/05 职场文书
2016中秋节广告语
2016/01/28 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL