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 相关文章推荐
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
在Django框架中编写Context处理器的方法
Jul 20 Python
深入理解python中的atexit模块
Mar 07 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
jupyter notebook中新建cell的方法与快捷键操作
Apr 22 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Python如何实现爬取B站视频
May 20 Python
python实现一次性封装多条sql语句(begin end)
Jun 06 Python
python常量折叠基础知识点讲解
Feb 28 Python
python flappy bird小游戏分步实现流程
Feb 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
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
php的socket编程详解
2016/11/20 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
基于python实现操作redis及消息队列
2020/08/27 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
意向书范文
2014/03/31 职场文书
大学班级计划书
2014/04/29 职场文书
节水倡议书
2015/01/19 职场文书
晚会开幕词
2015/01/28 职场文书
面试通知短信
2015/04/20 职场文书
务工证明怎么写
2015/06/18 职场文书
入党后的感想
2015/08/10 职场文书
python实现网络五子棋
2021/04/11 Python
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
Python中可变和不可变对象的深入讲解
2021/08/02 Python
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
Golang实现可重入锁的示例代码
2022/05/25 Golang