python 快速排序

2021/11/7 17:11:12

本文主要是介绍python 快速排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

def quick_sort(alist, start, end):
    if start >= end:
        # 退出递归
        return
    pivot = alist[start]
    right = end
    left = start
 
    # 控制right -= 1不满足条件交换
    while left < right:
        while left < right and alist[right] > pivot:
            right -= 1
        else:
            # 交换
            alist[left] = alist[right]
        # 控制 left += 1 , 不满足条件交换
        while left < right and alist[left] < pivot:
            left += 1
        else:
            alist[right] = alist[left]
 
    # 退出循环 left = right
    # left 或者 right 对应的位置 赋值为基准值
    alist[left] = pivot
 
    # 递归自己调用自己
    quick_sort(alist, start, left-1)  # 对左边排序
    quick_sort(alist, left+1, end)   # 对右边排序
 
 
if __name__ == '__main__':
    li = [6, 7, 5, 3, 4, 1, 8]
    quick_sort(li, 0, len(li)-1)
    print(li)

 



这篇关于python 快速排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程