def partition(li, left, right): tmp = li[left] while left < right: # 从右边找比tmp小的数 while left < right and li[right] >= tmp: right -= 1 li[left] = li[right] # 从左边找比tmp大的数 while left < right and li[left] <= tmp: left +=1 li[right] = li[right] li[left] = tmp li[left] = tmp def quick_sort(li, left, right): if left < right: #至少两个元素 mid = partition(li, left, right) quick_sort(li, left, mid - 1) quick_sort(li, mid + 1, right) # def _quick_sort(li, left, right): # if left < right: # 至少有两个元素 # mid = partition(li, left, right) # _quick_sort(li, left, mid-1) # _quick_sort(li, mid+1, right)