import random
arr = [10, 7, 8,8, 9, 2,1,1,1, 5]
def QuickSort(arr):
if len(arr) == 1 or len(arr) == 0:
return arr
number = random.choice(arr)
left_list = []
right_list = []
label = True
for i in arr:
if i != arr[0]:
label = False
if i>number:
right_list.append(i)
else:
left_list.append(i)
if label:
return arr
left = QuickSort(left_list)
right = QuickSort(right_list)
return left + right
print(QuickSort(arr))
优化结构
def quickSort(arr):
if len(arr) < 2:
return arr
left , right = [] , []
for cur in arr[1:]:
right.append(cur) if cur > arr[0] else left.append(cur)
return quickSort(left) + [arr[0]] + quickSort(right)