1.函数递归
函数递归调用,在调用一个函数的过程中又直接或间接的调用了自己称之为递归调用
本质就是一个重复的过程,每一次重复必须减少问题的规模。递归必须满足两个阶段
#1、回溯:一层一层地递归调用下去
#2、递推:递归必须要有一个明确的结束条件,在满足该条件下会终止递归,往回一层一层地结束调用
例:l = [1,[2,[3,[4,[5,[6,[7,[8,[9,]]]]]]]]] 取出每一个值
2.二分法
1.什么是二分法:
二分法是适用于 数据量较大时,但是数据需要先排好顺序 。用来查找的一种算法。
算法:用来解决问题的 具有一定逻辑性的运算法则。
2.为什么要学二分法:
目前阶段,学习更高效的查询算法。算法初体验
3.怎么用
规律:1.确定查询区间(L)中间位置(m)与目标值(k)的大小,
2.若 L(m) > k则,k在 L(0:m) 区间,需重复步骤1;若L(m) < k,则k 在 L(m+1:)区间,需重复步骤1;若L(m) = k 则查找成功.
例1:nums = [3, 11, 13, 15, 23, 27, 43, 51, 72, 81, 93, 101],查询51是否存在,
例2:nums = [3, 11, 13, 15, 23, 27, 43, 51, 72, 81, 93, 101],查询51的下标位置,确定存在