(1)算法学习-递归法

算法学习笔记:

递归法(1)算法学习-递归法_第1张图片

1.L型瓷砖问题:巧妙地将一块L型瓷砖放到中央位置顺利地将正方形切成四个比较小的,也缺了一角的正方形。然后递归的处理这四个小正方形即可。


2.求解最大公因数:辗转相除法

             两数相减所得差值一定是最大公因数的倍数,也就是两数相除得到的余数一定是最大公因数的倍数。如此可知,两数相除之后得到的余数,求最大公因数的问题即变成余数与较小那个数之间求最大公因数的问题(问题相同,对象缩小即可使用递归的方法),如此递归直到余数不会继续变小即可。

3.过桥问题(1)算法学习-递归法_第2张图片

桥上只能有两个人经过,只有一个手电筒,要经过该桥时必须拿着一个手电筒,每个人的过桥时间不一两个人的过桥时间以最慢的那个人为主。问怎么样过桥才能使过桥时间最短?

      当只有三个人时,最快的带最慢的过桥,然后折回接另一个人过桥

      当只有两个人或一个人时以最慢的过桥时间为准

      当大于或等于四个人且人数为偶数时,将问题分解成最快的前两个人将其他两个人一两个人一组地送到桥对面且时间最短的问题,而将两个人一组送到对面的情况有两种(A,B,C,D过桥时间递增):1,AC过桥,A回,AD过桥A回  2,AB过桥A回,CD过桥B回。比较这两种方法的时间长短,取最短的时间方法。此后,AB最后过桥。

       当大于四个人且人数为奇数时,将问题分解为大于或等于四个人人数为偶数+只有三个人的问题分析。


4.相对于递归法,还有递推法,递归法为由大到小,递推法由小到大~


你可能感兴趣的:(算法学习)