#Python 快排 双循环
不知道那里出问题了
# 快排 双边循环
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)