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 06 Python
python读取word文档的方法
May 09 Python
Python3使用requests发闪存的方法
May 11 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
django 外键model的互相读取方法
Dec 15 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
离线状态下在jupyter notebook中使用plotly实例
Apr 24 Python
Django多数据库联用实现方法解析
Nov 12 Python
PyTorch预训练Bert模型的示例
Nov 17 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 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验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
AngularJS directive返回对象属性详解
2016/03/28 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
python利用装饰器进行运算的实例分析
2015/08/04 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
会计工作决心书
2014/03/11 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
护士工作心得体会
2016/01/25 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python