递归函数
递归函数=在一个函数中再次调用该函数本身的行为叫做递归,这样的函数称为递归函数.
例子一
n!=n*(n-)!
转化↓
intfact(intn){
if(n==0)return;
returnn*fact(n-);
}
例子二
an=an--+an-2(n)
转化↓
intfib(intn){
if(n=)returnn;
returnfib(n-)+fib(n-2);
}
记忆化↓
intmemo[MAX_N+];
intfib(intn){
if(n=)returnn;
if(nemo[n]!=0)returnmemo[n];
returnmemo[n]=fib(n-)+fib(n-2);
}
穷竭搜索不是普通的算法,是一种思维。
栈和队列栈
栈(Stack)是支持push和pop两种操作的数据结构。
push是在栈的顶端放入一组数据的操作。
pop是从其顶端取出一组数据的操作。
这意味着,最后放入的元素能够最先取出(LIFO:LastInFirstOut)。
队列
队列(Queue)亦是支持push和pop两种操作的数据结构。
不同的是,队列的pop完成的是取出底端一组数据的操作。
这意味着,最先放入的元素能够最先取出(FIFO:FirstInFirstOut)。
预览时标签不可点收录于话题#个上一篇下一篇