兄弟萌,话不多说,show me the code!
def qsort_rec(lst,l,r):
if l>=r:
return # 分段无记录或者只有一个记录
i = l
j = r
pivot = lst[i] # lst[i]是初始空位
while i<j: # 找pivot的最终位置
while i<j and lst[j] >= pivot:
j -=1 # 用j向左扫描找小于pivot的记录
if i<j:
lst[i] = lst[j]
i +=1 # 小记录移到左边
while i<j and lst[i] <= pivot:
i +=1 # 用i向右扫描找大于pivot的记录
if i<j:
lst[j] = lst[i]
j -=1 # 大记录移到右边
lst[i] = pivot # 将pivot存入其最终位置
qsort_rec(lst,l,i-1) # 递归处理左半区间
qsort_rec(lst,i+1,r) # 递归处理右半区间
if __name__ == '__main__':
lst = [6, 1, 2, 7, 9, 3, 4, 5, 10, 8]
qsort_rec(lst,0,len(lst)-1)
print(lst)