简洁的快速排序

def quick_sort(arr, begin, end):
    if begin >= end:
        return

    move_left = begin
    move_right = end

    while move_left < move_right:
        # 要先从右侧找,否则move_left最终可能指向比arr[begin]大的值
        while move_left < move_right and arr[move_right] > arr[begin]:
            move_right -= 1

        while move_left < move_right and arr[move_left] <= arr[begin]:
            move_left += 1

        arr[move_left], arr[move_right] = arr[move_right], arr[move_left]

    arr[begin], arr[move_left] = arr[move_left], arr[begin]
    quick_sort(arr, begin, move_left-1)
    quick_sort(arr, move_left+1, end)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容