def quick_sort(array,left,right):
if left>=right:
return
low=left
high=right
key=array[low]#设置基准数
while left<right:
while left<right and array[right]>=key:#如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现
right-=1
array[left]=array[right]#如找到,则把第j个元素赋值给第个元素i,此时表中i,j个元素相等
while left<right and array[left]<=key:#同样的方式比较前半区
left+=1
array[right]=array[left]
array[right]=key#做完第一轮比较之后,列表被分成了两个半区,并且i=j,需要将这个数设置回base
print(array)
# 递归前后半区
quick_sort(array,low,left-1)
quick_sort(array,left+1,high)
return array
print(quick_sort([2,13,6,11,1,5,16,22,7],0,8))

Python 快排的更多相关文章

  1. python 快排,堆排,归并

    #归并排序 def mergeSort(a,L,R) :     if(L>=R) :         return     mid=((L+R)>>1)     mergeSort ...

  2. python快排算法

    通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列. ...

  3. python快排

    代码: def partition(data,left,right): tmp = data[left] while left<right: while left < right and ...

  4. Python 快排[pythonnic]

    def QS(array): less = [] more = [] if len(array) <= 1: return array head = array.pop() for x in a ...

  5. python 冒泡和快排,不多说【无聊】

    #-*-coding:utf8-*- import random a=[] b=[] def init_array(): for i in range(10000): v = random.randi ...

  6. Python的快排应有的样子

    快排算法 ​ 简单来说就是定一个位置然后,然后把比它小的数放左边,比他大的数放右边,这显然是一个递归的定义,根据这个思路很容易可以写出快排的代码 ​ 快排是我学ACM路上第一个让我记住的代码,印象很深 ...

  7. 快排(python)

    用python写了个快排,第一次发现python居然可以这么简洁. def quicksort(arr): if len(arr) <= 1: return arr pivot = arr[le ...

  8. python 冒泡和快排,不多说

    #-*-coding:utf8-*- import random a=[] b=[] def init_array(): for i in range(10000): v = random.randi ...

  9. 快排的python实现

    快排的python实现 #python 2.7 def quick_sort(L): if len(L) <= 1: return L else: return quick_sort([lt f ...

随机推荐

  1. Linux读写执行权限

    Linux 将访问文件的用户分为 3 类,分别是文件的所有者,所属组(也就是文件所属的群组)以及其他人. 最常见的文件权限有 3 种,即对文件的读(用 r 表示). 写(用 w 表示). 执行(用 x ...

  2. Java第一次学习总结

    学习内容: 1.java是本学期刚刚接触新的一种编程语言,与大一C语言在语法上有很多相同之处,不同的是在很多问题上,更加简练,更加易于理解. 例如:输出水仙花数,从C语言近五十行代码缩短近十几行,数据 ...

  3. 第四周实验总结&实验报告

    实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性 ...

  4. 通过 vSphere WS API 获取 vCenter Datastore Provisioned Space 置备空间

    目录 文章目录 目录 Provisioned Space & Used Space Provisioned Space 的计算方式 Uncommitted Space 扩展:置备率的计算公式 ...

  5. 中国MOOC_零基础学Java语言_第6周 使用对象_1单词长度

    第6周编程题 查看帮助 返回   第6周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截 ...

  6. zstack分配的虚拟机的dns设置

    环境: $ uname -a Linux 10-57-19-61 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x8 ...

  7. Linux中MySQL5.7设置utf8编码格式步骤

    关于编码问题,真的是弄得我很郁闷,网上找的帖子这方面也很多但都无济于事,晚上终于找到一篇有效的,特此贴上. 转自Ubuntu中MySQL5.7设置utf8编码格式步骤 1.首先打开终端 2.输入mys ...

  8. linux 进程间共享内存示例

    写入端: #include <iostream> #include <unistd.h> #include <stdlib.h> #include <stdi ...

  9. Babel编译:类

    编译前 class Fruit{ static nutrition = "vitamin" static plant(){ console.log('种果树'); } name; ...

  10. jQuery与JavaScript与ajax三者的区别与联系(转)

    原文链接:  https://blog.csdn.net/qq_43154385/article/details/85003484 通过阅读,对于三者关系有一个比较清晰的认知,对于后期深入学习大有裨益 ...