def quick_sort(arr):
if len(arr) <=1:
return arr
pivot = arr[0]
left = []
right = []
for num in arr[1:]:
if num <= pivot:
left.append(num)
else:
right.append(num)
return quick_sort(left) + [pivot] + quick_sort(right)
source = [1,5,3]
target = [1,3,5]
## list.eq 包含相同的元素,并且顺序相同
print(quick_sort(source) == target)
AO – 01
pivot_index = random.randint(0, len(arr))
pivot = arr[pivot_index]
for i,num in enumerate(arr):
if pivot_index == i:
continue
AO – 02
def insert_sort(arr):
for i in range(1,len(arr)):
key = arr[i]
j = i-1
while j>=0 and key < arr[j]:
arr[j+1] = arr[j]
j-=1
arr[j+1] = key
return arr
def quick_sort(arr):
if len(arr) <=1:
return arr
if len(arr) < 10:
return insert_sort(arr)
