递归函数 c++ 的复杂性
Complexity of a recursive function c++
*我正在尝试计算以下函数的复杂度Big-Theta表示法: 变量 i 是常量 == 3 *
void g(int i, int n) {
if (i>0) {
for (int j=n+10; j>0; j-=5) {
g(i-2, n);
}
}
}
因为它是一个递归函数,我想我应该用主定理来计算它,但实际上没有 n 的除法。我会非常感激任何帮助!
递归关系为 T(i, n(= (n+10(T(i-2, n(/5。
奇数和偶数i
的项都是乘法因子 (n+10(/5 的几何级数。这可以解析为 T(i, n( = O((n/5(^(i/2((,或者如果您愿意,可以解析为 O(sqrt(n/5(^i(。
相关文章:
- 具有未知值时的时间复杂性
- 关联容器的下界复杂性:成员函数与非成员函数
- 使用堆查找第K个最大元素的时间复杂性
- 并行标准::复制复杂性
- 特定算法的复杂性与 3 for?
- C++ 字符串类擦除成员函数的时空复杂性
- 递归函数 c++ 的复杂性
- 这个递归函数有什么作用?运行时的复杂性是多少?
- C++ - 对象填充的复杂性
- 提高从排序字符串中获取字母顺序的顺序复杂性
- 从 long 转换C++位集构造函数的复杂性是多少?
- 通过引用访问矢量元素是否会降低C++的空间复杂性?
- 向 std::list 添加新元素的复杂性
- 解决这个问题的时间复杂性是多少
- 如果你有一个固定大小的数组,你需要遍历它!n次,使用二进制搜索如何改变时间复杂性
- 对于像C++这样的现实世界语言,时间复杂性有什么一致的定义吗
- 两个嵌套循环的运行时间复杂性:二次型还是线性
- 学习时空复杂性时语句XYZ的含义是什么?
- 算法 std::include in c++ 的复杂性
- 标准的复杂性::地图::insert_or_assign提示