LibraSolo 2022-07-04 16:19 采纳率: 0%
浏览 9

Python 快速排序 请求指导

#Python 快排 双循环
不知道那里出问题了

img


# 快排 双边循环
def _quick_double(li, left, right):
    start = left
    pivot = li[start]
    while left != right:
        # 右侧只大于 pivot,小于 pivot放在原位
        while left < right and li[left] <= pivot:
            left += 1
        # 左侧只要小于 pivot,大于 pivot放在原位
        while left < right and li[right] > pivot:
            right -= 1
        li[left], li[right] = li[right], li[left]
    li[start], li[left] = li[left], li[start]
    return left


def quick_sort_double(li, left, right):
    if left >= right:
        return
    q = _quick_double(li, left, right)
    quick_sort_double(li, left, q-1)
    quick_sort_double(li, q+1, right)

  • 写回答

1条回答 默认 最新

  • bekote 2022-07-05 10:36
    关注
    
    def _quick_double(li, left, right):
        start = left
        pivot = li[start]
        while left <= right:
            # 右侧只大于 pivot,小于 pivot放在原位
            while left <= right and li[left] <= pivot:
                left += 1
            # 左侧只要小于 pivot,大于 pivot放在原位
            while left <= right and li[right] > pivot:
                right -= 1
            if left <= right:
                li[left], li[right] = li[right], li[left]
        li[start], li[left-1] = li[left-1], li[start]
        return left-1
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月4日

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路