快速排序

def partation(li,left,right):
    tmp = li[left]
    while left < right:
        while left < right and li[right] >= tmp:  # 右边找比tmp小的数
            right -= 1
        li[left] = li[right]
        while left < right and li[left] <= tmp:   # 左边找比tmp大的数
            left += 1
        li[right] = li[left]
    li[left] = tmp
    return left

def quick_sort(li,left,right):
    if left < right:
        mid = partation(li,left,right)
        quick_sort(li,left,mid-1)
        quick_sort(li,mid+1,right)


def main():
    li = [3,2,7,4,8,9,6,5,1]
    quick_sort(li,0,len(li)-1)
    print(li)

if __name__ == '__main__':
    main()

  

posted @ 2021-11-13 11:27  NAVYSUMMER  阅读(49)  评论(0编辑  收藏  举报
交流群 编程书籍