#排序思路:默认第一为最小,右小默认移左边,左小默认移右边,最后默认放回,不断操作为最快
def quick_sort(li,left,right):
while left<right:
tmp=li[left] #把第一位数当作对比的数
while left<right and li[right]>=tmp: #从右边最后一个数开始,小于对比数放左边
right-=1 #指针往左移
li[left]=li[right] #移动
while left<right and li[left]<=tmp: #同理,左边的往右移动
left+=1
li[right]=li[left]
li[left]=tmp #把中间那个数放回它该放的位置,即左边小于它,右边大于它
return left
def _quick_sort(li,left,right):
if left<right:
mid = quick_sort(li,left,right)
_quick_sort(li,left,mid-1)
_quick_sort(li,mid+1,right)
li=[random.randint(0,100) for _ in range(10)]
_quick_sort(li,0,len(li)-1)
print(li)
算法吧-快速排序
于 2023-08-14 18:24:40 首次发布