排序算法
快速排序
先把第一个数当成基准数,先从右往左寻找比基准数小的数,让s[i]=s[j],然后从左往右寻找比基准数大的数,让s[j]=s[i],最后将所有比基准数小的数放在基准数左边,把所有比基准数大的数放在基准数右边,再用分治法递归调用
def quick_sort(s,left,right):
if left<right:
i,j,tmp=left,right,s[left]
while i<j:
while i<j and s[j]>=tmp:
j-=1
if i<j:
s[i]=s[j]
i+=1
while i<j and s[i]<tmp:
i+=1
if i<j:
s[j]=s[i]
j-=1
s[i]=tmp
quick_sort(s,left,i-1)
quick_sort(s,i+1,right)