递归回文问题的时间复杂度,C++
Time complexity of recursive palindrome question, C++
我只是想知道如何在这里找到递归函数的时间复杂度。我知道在我的程序的大部分时间里,它都在常量时间 O(1( 中,但我如何计算递归函数的时间复杂度。
int pal(int n, int temp)
{
// Using division of 10 trick
if(n == 0)
return temp;
// Build the number backwards.
temp = (temp * 10) + (n % 10);
// Then advance through the number.
return pal(n / 10, temp);
}
int main()
{
int n = 5678;
int temp = pal(n, 0);
if(temp == n)
cout << "Yes it is a palindrome";
else
cout << "No its not a palindrome";
]
它是O(log(n))
,其中 n 是数字。
但它也是O(s)
,其中s是输入大小(在计算理论中使用输入大小作为字符串非常标准(
在任何现有的C++平台上编译,你也可以说它是O(k)
的int
因为大小有限。
因此,这取决于您使用的约定。或者你的教授在课堂上展示的任何东西。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何计算此排序函数的时间复杂度?
- 计算两个代码块的时间复杂度
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 具有嵌套 if-else 的循环的时间复杂度
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 如何计算函数的时间复杂度?
- 求解包含"variables"的 T(n) 时间复杂度
- 查找数字是否为 2 的幂的时间复杂度
- C++ - 最坏情况和平均情况插入时间复杂度在 std::unordered_map <int,int>?
- 为什么一种算法在相同的时间复杂度下比另一种算法更快?
- 关于记忆后这种递归关系的时间复杂度
- 2 个嵌套循环的时间复杂度
- 给定C++代码的时间复杂度是多少?
- 降低程序的时间复杂度