1. Fib: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
公式:F(n) = F(n - 1) + F(n - 2)
// 递归fib(n: number): number { if (n <= 2) return n; return fib(n - 1) + fib(n - 2);}
2. 算法递归函数中,主定理的利用
- 二分查找,一分为二,只查问一边,工夫复杂度为O(log(n))
- 二叉树的遍历,每一个节点都被拜访一次,且仅拜访一次,工夫复杂度为O(n)
- 最优排序矩阵查找,工夫复杂度为O(n)
- 归并排序,工夫复杂度为O(nlog(n))
3. 算法思考题一
二叉树遍历-前序、中序、后序:工夫复杂度是多少
图的遍历:工夫复杂度是多少
搜索算法:DFS(深度优先)、BFS(广度优先)的工夫复杂度是多少
二分查找:工夫复杂度是多少
(1)工夫复杂度为O(n),n代表二叉树外面的树的节点总数 (2)每一个节点都被拜访一次,且仅拜访一次,工夫复杂度为O(n),n代表图的外面的节点总数 (3)工夫复杂度为O(n),n代表搜寻空间外面的节点总数 (4)一分为二,只查问一边,工夫复杂度为O(log(n))