python_快速排序

def quickSort(mylist):
if len(mylist) <= 1:
return mylist
list1,list2,list3 = [],[],[]
for x in range(len(mylist)):
if mylist[x] < mylist[0]:
list1.append(mylist[x])
elif mylist[x] == mylist[0]:
list2.append(mylist[x])
else:
list3.append(mylist[x])
return quickSort(list1) + list2 + quickSort(list3)


def quickSort1(mylist,start,end):
if len(mylist) <= 1 or start <= end:
return
low = start
high = end
key = mylist[start]
while start<end:
while mylist[end]>key and start<end:
end += 1
mylist[start] = mylist[end]
while mylist[start]<=key and start<end:
start +=1
mylist[end] = mylist[start]
mylist[start] = key
quickSort1(mylist,low,start-1)
quickSort1(mylist,start+1,high)


lList = [2,5,1,6,87,9,3,2,5,89,9,21,5]
lList1 = quickSort(lList)
print(lList)
print(lList1)
quickSort1(lList,0,len(lList)-1)
print(lList)

原文地址:https://www.cnblogs.com/dabaicai0703/p/11222557.html