算法图解 - 第3章 递归
# 递归:自己调用自己,无限循环 。为此需要条件告诉它何时停止递归。
- 包含 基线条件 和 递归条件
- 基线条件结束递归
- 递归条件调用自己
eg:在大盒子里的某个盒子里找钥匙,是盒子就继续找,直到找到钥匙
# 栈
eg: 无口瓶子,一端压入,一端弹出
#总结
- 递归指的是调用自己的函数。
- 每个递归函数都有两个条件:基线条件和递归条件。
- 栈有两种操作:压入和弹出。
- 所有函数调用都进入调用栈。
- 调用栈可能很长,这将占用大量的内存。
function countdown(time) { setTimeout(function(){ console.log(time); if(time <= 0){ //基线条件 document.getElementById('test').innerHTML = '倒计时结束'; return; }else{ //递归 time--; document.getElementById('test').innerHTML = '倒计时:'+time; countdown(time); } },1000); } countdown(30);
一步一叩首,今天的自己比昨天好一点就行,明天的自己需追寻