快速排序

来源:互联网 发布:大数据展示平台 编辑:程序博客网 时间:2024/05/16 09:00
#coding=utf-8
import math
import random
def swap(A,i,j):
    r=A[i]
    A[i]=A[j]
    A[j]=r
    
def partition(A,p,r):
    x=A[r]
    i=p-1
    for j in list(range(p,r)):
        if A[j]<=x:
            i=i+1
            swap(A,i,j)
    swap(A,i+1,r)
    return i+1   #没次调用partition,将会产生一个分割p,r的q角标
            


def quickSort(A,p,r):
    if p<r:
        q=partition(A,p,r)
        quickSort(A,p,q-1)
        quickSort(A,q+1,r)




A=[1,2,3,4,7,8,9,10,14,16]
random.shuffle(A)
print(A)
quickSort(A,0,len(A)-1)
print(A)

0 0
原创粉丝点击