首轮排序,flag是标准,小 就是比标准小,大就是比标准大,l[i],l[j]
小,小,小,l[i](小),大,大,大,l[j],...
l[i]=l[i+1]变大,然后和l[j]交换
l=[1,3,2,7,5,6,3,9,4,6] def fist_sort(l): flag=l[-1] i=-1 for j in range(len(l)-1): if l[j]>flag: #j比i早,按照步长1在递增,如果跳过比标记位大的就保留在l[i]右边 pass else: i+=1 #如果判断遇到比标记位小,此时调换前i已经+1,l[i]是属于右边的大数的,调换l[i]和l[j],大小数交换 temp=l[i] l[i]=l[j] l[j]=temp print(l) #第一轮排序已经结束 temp=l[-1] #i+1就是中间位 l[-1]=l[i+1] l[i+1]=temp return i+1 fist_sort(l)
首轮解决后就可以开始递归