Python 快速排序(QuickSort)

摘要:
在分区过程中,所有大于这个数字的数字都放在它的右侧,所有小于或等于它的数字都放置在它的左侧。对左右间隔重复第二步,直到每个间隔只有一个数字。

一、 算法描述:

先从数列中取出一个数作为基准数。

分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。

再对左右区间重复第二步,直到各区间只有一个数。

#!/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

免责声明:文章转载自《Python 快速排序(QuickSort)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【原创】DB2 表坏故障处理小记Validated 注解完成 Spring Boot 参数校验下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

db2 reorg详解

reorgchk,检查tableindex是否需要重组。reorg重组,重新放置数据位置。5)db.tb_reorg_req运行状况指示器处于ATTENTION状态。可以分为对系统表和用户表两部分分别进行REORGCHK:1)针对系统表进行REORGCHKdb2reorgchkupdatestatisticsontablesystem使用UPDATESTAT...

内存数据库-H2简介与实践

该模式下,H2数据库可以部署在不同的JVM或不同的物理机中,多个应用可以通过连接H2服务器同时连接到H2数据库。混合模式示意图如下:1.3H2数据库JDBCURL格式H2数据库支持多种连接方式和连接设置,连接URL格式如下,URL中的设置大小写不敏感。...

GitHub怎样fork别人的代码到自己仓库并进行贡献

在fork完成其他人的代码后,它也在自己的帐户下拥有该项目,然后将其克隆到自己的计算机上。然后它可以通过gitclone命令修改项目。但是,不建议直接在主分支上修改项目。最好在主分支的基础上剪切一个dev分支,然后在dev分支上修改它。修改后,将dev分支合并到master分支。...

java环境安装Firefox驱动/IE驱动

如果selenium版本是3.x的,需要使用驱动包解决办法:往项目中添加火狐驱动包,并加载驱动的配置。...

用python调用caffe时出错:AttributeError: 'module' object has no attribute 'bool_'

下面给出了一个解决方案,即重命名冲突的io文件:numpyと PyCaffe公司が io。年が 竞争す る よ で す$ pythonclassify。py--raw_scale255~/caffe/101_ObjectCategories/airaires/image_0001.jpg../result.npyTraceback:文件“classif.py...

C#Win32API编程之PostMessage

本文以C#调用Win32API函数PostMessage完成指定表单的后台鼠标和键盘模拟为例,大致解释了C#调用非托管代码和Window的消息处理机制。我们可以将PostMessage用于函数。成功与否在很大程度上取决于我们传达的信息是否真实。消息表明消息是什么。请原谅我先讲故事。我希望先解释一下PostMessage函数。这是一个异步操作,如下图所示:调用...