快排的思想就是分治,我这里没有使用指针,我这主要运用的是递归
就是把一个无序的list第一次递归形成相对有序,依次递归
def Qsort(list1):
# list1 = [2,4,657,1]
if len(list1)<1:
return list1
x = len(list1)//2
temp = list1[x] # 定义一个基准,都可以,我这里选的是中间的数
lift_list = [] # 装比基准小的数
right_list=[] # 装比基准大的数
for i in list1: #循环后基准左边的都比基准右边的小,将两边无序的继续递归
if i < temp:
lift_list.append(i)
elif i> temp:
right_list.append(i)
return Qsort(lift_list) + [temp]+ Qsort(right_list)
if __name__ == '__main__':
list1 = [2,2, 4, 4,657, 1]
print(Qsort(list1))