图解算法 递归/快速排序/散列表/广度优先搜索
1.递归
每个递归函数都有两个条件:基线条件和递归条件
简单例子:实现sum函数
# 1.实现sum函数
def sumNumber(arr):
if arr==[]:
return 0
else:
print(arr.pop())
return arr.pop()+sumNumber(arr)
print(sumNumber([2,5,7,10]))
2.快速排序 O(nlogn)
分而治之(divide and conquer, D&C)是著名的递归式问题解决方法
快速排序-重要的D&C算法
# 2.快速排序 O(nlogn)
def quicksort(array):
if len(array)<2: # 递归的基线条件:数组为空或者只包含一个元素,这时的数组是有序的
return array
else:
pivot=array