代码改变世界

python 快速排列

2019-07-08 18:59  Wan-612  阅读(189)  评论(0)    收藏  举报
def quickmothod(li,low,high):
    left=low
    right=high
    if left< right:
        key=li[left]
        while left<right:
            while left<right and li[right]>=key:
                right -= 1
            li[right],li[left]=li[left],li[right]
            while left<right and li[left]<=key:
                left += 1
            li[left],li[right]=li[right],li[left]
        quickmothod(li,low,left-1)
        quickmothod(li,right+1,high)
li = [5,18,22,33,100,0,15,12,15,0,22,33,0,22,0,22]
quickmothod(li,0,len(li)-1)
print(li)
# def quick(li,p,q):
#     left=p
#     right=q
#     if left<right:
#         while left<right:
#             while li[left]<li[right] and li[left]<=li[0]:
#                 left+=1
#             li[left],li[right]= li[right],li[left]
#             while li[left]<li[right] and li[right]>=li[0]:
#                 right-=1
#             li[left],li[right]= li[right],li[left]
#         quick(li,p,left-1)
#         quick(li,right+1,q)
# li=[10,20,30,1,2,3]
# quick(li,0,len(li)-1)
# print(li)