一:在学习快排前先了解下递归函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
举个例子,我们计算1+2+3+…+100,用函数sum(n)表示
def sum(n):
if n==1:
return 1
return n+sum(n-1)
print(sum(100))
代码分解理解就是先定义一个求和函数,如果n==1,就返回1,否则就是n+sum(n-1),如果n=3, return 3+sum(2),即return 3+2+sum(1)=renturn 3+2+1 最后返回6。这样就好理解了,其实我们就是将大问题拆成了一个个小问题。先解决大问题,再用同样的方法解决小问题。
二:理解快速排序的思路
策略:把一个序列分成较小和较大的2个子序列,然后递归的排序两个子序列
快速排序是在一个序列(list)里挑选一个基准值,重新排序数列,所有比基准值小的元素排在基准值的左边,所有比基准值大的元素排在基准值的右边,然后递归地将小于基准值元素的子序列和大于基准值元素的子序列排序。