美文网首页
Python快速排序

Python快速排序

作者: 黑咔 | 来源:发表于2020-03-11 15:02 被阅读0次
    def quick_sort(arr, left, right):
        if left > right:  # 递归出口
            return
    
        base = arr[left]  # 以左边的数为基准数
        l = left
        r = right
    
        while l != r:
            # 从右往左找,如果找到比基准数大的就停止循环,否则r--
            while l < r and not (base > arr[r]):
                r -= 1
            # 从左往右找,如果找到比基准数小的就停止循环,否则l++
            while l < r and not (base < arr[l]):
                l += 1
    
            # 交换
            arr[l], arr[r] = arr[r], arr[l]
    
        # 如果基准数比中间元素大,就进行交换
        if base > arr[l]:
            arr[left], arr[l] = arr[l], arr[left]
    
        quick_sort(arr, left, r - 1)  # 往左递归
        quick_sort(arr, l + 1, right)  # 往右递归
    

    相关文章

      网友评论

          本文标题:Python快速排序

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