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中反射用法实例
Mar 27 Python
MySQL最常见的操作语句小结
May 07 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
执行Django数据迁移时报 1091错误及解决方法
Oct 14 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python中的被动信息搜集
Apr 29 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中变量及部分适用方法
2008/03/27 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
Python生成随机数的方法
2014/01/14 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python中的计时器timeit的使用方法
2017/10/20 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
一些Solaris面试题
2015/12/22 面试题
活动邀请函范文
2014/01/19 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
高中生家长寄语大全
2014/04/03 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
完整版商业计划书
2014/09/15 职场文书
产品委托授权书范本
2014/09/16 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
OpenCV-Python实现轮廓拟合
2021/06/08 Python
Nginx实现负载均衡的项目实践
2022/03/18 Servers