美文网首页
简洁的快速排序

简洁的快速排序

作者: WhyDoWeLive | 来源:发表于2019-06-15 14:09 被阅读0次
    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)

    相关文章

      网友评论

          本文标题:简洁的快速排序

          本文链接:https://www.haomeiwen.com/subject/jxdbfctx.html