c - 确定以下函数的复杂性 (Big O)
问题描述
我需要帮助弄清楚这些功能的复杂性。在我看来,这些函数的大 o 将是 O(2^n)、O(n) 和 O(1),但我不确定,所以如果我能得到任何帮助,我将不胜感激。
int func1(int n, int a, int b){
int res=0;
if (n == 1){
res=a;
}
else{
res=res+func1(n-1,a,b)+b;
}
return res;
}
int func2(int n, int a, int b){
int res = a;
for (int i=0; i<n-1; i++){
res+=b;
}
return res;
}
int func3(int n, int a, int b){
int res = a + (n-1)*b;
return res;
}
解决方案
推荐阅读
- python - 优雅地退出没有标志的 QCoreApplication 并中断以前运行的代码
- html - 使用 bootstrap 4+ 和 AOS 在我的页面上保持正确的填充像素
- python - ModuleNotFoundError:vs 代码中没有名为“django”的模块问题
- react-native - 如何在不使用onchangeText的情况下从文本框中获取文本?
- docker - 如何为反向代理配置 nginx 以隐藏正在运行 docker 容器的端口?
- docker - 如何在 Docker 上使用 Geckodriver .Net 内核运行 Selenium
- openedge - 数据被 CSV 文件覆盖
- python - 以特定顺序在同一个线程中运行多个函数
- flutter - GestureDetector 在 IgnorePointer 下不起作用
- javascript - 递归地记录dom中所有孩子的所有孩子