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调用命令行进度条的方法
May 05 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
利用Python读取文件的四种不同方法比对
May 18 Python
使用python实现knn算法
Dec 20 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 Python
wxPython实现分隔窗口
Nov 19 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
详解python破解zip文件密码的方法
Jan 13 Python
Django认证系统user对象实现过程解析
Mar 02 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
Pytorch 如何实现LSTM时间序列预测
May 17 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+javascript模拟Matrix画面
2006/10/09 PHP
php获取参数的几种方法总结
2014/02/18 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
laravel学习教程之关联模型
2016/07/30 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
Python基础入门之seed()方法的使用
2015/05/15 Python
python3.6数独问题的解决
2019/01/21 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
python3安装crypto出错及解决方法
2019/07/30 Python
python elasticsearch环境搭建详解
2019/09/02 Python
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
关于圣诞节的广播稿
2014/01/26 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
三方合作意向书范本
2015/05/09 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis