Recursion 递归反向字符串的时间复杂度

Recursion 递归反向字符串的时间复杂度,recursion,time-complexity,big-o,Recursion,Time Complexity,Big O,我想找出以下代码中大O的时间复杂度: ReverseString(S,x,y) if x < y swap(S,x,y) return ReverseString(S,x+1,y-1) 如果我是对的,我将如何着手解决这个问题 如果我不正确,正确的等式是什么。假设x和y是指向字符串结尾的指针,那么你的等式是错误的。这是一个简单的单递归,但假设为双递归。此外,还存在使T(n)依赖于T(n+1)的严重问题;你真的不想在没有保证的有限有界下降的情况下,在下标中上升 这样想:每一次

我想找出以下代码中大O的时间复杂度:

ReverseString(S,x,y)
if x < y
    swap(S,x,y)
    return ReverseString(S,x+1,y-1)
如果我是对的,我将如何着手解决这个问题


如果我不正确,正确的等式是什么。

假设x和y是指向字符串结尾的指针,那么你的等式是错误的。这是一个简单的单递归,但假设为双递归。此外,还存在使T(n)依赖于T(n+1)的严重问题;你真的不想在没有保证的有限有界下降的情况下,在下标中上升

这样想:每一次迭代都会使x和y在每一端靠近一个字符。您的单个递归循环遍历字符串的一半。我认为这是一种关系

T(n) = 3 + T(n-1)

其中n是字符串长度的一半(如果奇数则截断)。

假设x和y是指向字符串结尾的指针,那么您的公式是错误的。这是一个简单的单递归,但假设为双递归。此外,还存在使T(n)依赖于T(n+1)的严重问题;你真的不想在没有保证的有限有界下降的情况下,在下标中上升

这样想:每一次迭代都会使x和y在每一端靠近一个字符。您的单个递归循环遍历字符串的一半。我认为这是一种关系

T(n) = 3 + T(n-1)
其中n是字符串长度的一半(如果奇数,则截断)。

我不确定T(n)是什么-长度为n的字符串的复杂性?为什么T(n)依赖于较长字符串的复杂性?该方法的要点是x从0开始,向中间增加,y从末尾开始,向中间减少。这些方法简单地遍历字符串一次,使用字符串长度的一半(四舍五入)迭代,所以应该是n的顺序,不是吗?t(n)是递归关系的标准任务表示法。我不确定t(n)是什么-长度为n的字符串的复杂性?为什么T(n)依赖于较长字符串的复杂性?该方法的要点是x从0开始,向中间增加,y从末尾开始,向中间减少。这些方法简单地遍历字符串一次,使用字符串长度的一半(向上舍入)迭代,所以应该是n的顺序,不是吗?t(n)是递归关系的标准任务表示法。