Python3 手写快手排序

快速排序的python手写实现

def fast_sort(a,x,y):
    i,j=x,y
    mid=a[x] #将首元素作为基准元素
    index=x
    flag=False
    while(i<j):
        if not flag:
            while(j>i):
                if a[j]<mid:
                    a[index]=a[j]
                    index=j
                    j-=1
                    flag=True 
                    break
                j-=1
                
        else:
            while(j>i):
                if a[i]>mid:
                    a[index]=a[i]
                    index=i
                    i+=1
                    flag=False
                    break
                i+=1
    a[index]=mid
    if index-x>1:
        fast_sort(a,x,index-1)
    if y-index>1:
        fast_sort(a,index+1,y)

a=[4,2,1,3,0]
fast_sort(a,0,4) #调用方法

posted @ 2020-04-16 15:00  bean_boom  阅读(173)  评论(0编辑  收藏  举报