一、快速排序
时间复杂度:快速排序的时间复杂度为O(nlogn)
设定一个基准值pivot
将数组重新排列,所有比pivot小的放在其前面,比pivot大的放后面,这操作称为分区操作
对两边的数组重复前面两个步骤
二、画图演示
三、代码块
采用递归思想
def quickSort(nums):
n=len(nums)
if n<=1:
return nums
pivot=nums[0]
left=[]
right=[]
for i in range(1,n):
if nums[i]>pivot:
right.append(nums[i])
else:
left.append(nums[i])
print(left,pivot,right)
print('-----------------------------')
return quickSort(left)+[pivot]+quickSort(right)
test = [44, 12, 59, 36, 62, 43, 94, 7, 35, 52, 85]
test=quickSort(test)
print(test)
执行结果: