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字符串处理之count()方法的使用
May 18 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
Tensorflow中的placeholder和feed_dict的使用
Jul 09 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
python已协程方式处理任务实现过程
Dec 27 Python
Python递归实现打印多重列表代码
Feb 27 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
Python pandas如何向excel添加数据
May 22 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
Python通过len函数返回对象长度
Oct 22 Python
90行Python代码开发个人云盘应用
Apr 20 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调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JSON格式化输出
2014/11/10 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
python rsa 加密解密
2017/03/20 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
django的ORM操作 增加和查询
2019/07/26 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
暇步士官网:Hush Puppies
2016/09/22 全球购物
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
读群众路线的心得体会
2014/09/03 职场文书
就业推荐表院系意见
2015/06/05 职场文书
《开国大典》教学反思
2016/02/16 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
React实现动效弹窗组件
2021/06/21 Javascript
Python办公自动化解决world文件批量转换
2021/09/15 Python