我想知道如果我进行就地交换而不是遍历数组中的每个字符,是否可以减少字符串反向函数的时间复杂度(Big O表示法)。
我最初以为是,因为进行就地交换只需要遍历给定字符串中一半的字符。尽管经过第二次思考,将得出O(.5n)的时间复杂度与渐近复杂度等于O(n),但我们忽略了乘数。
t
我可能已经回答了我自己的问题,因为我认为这将与我遍历字符串中的每个字符(即O(n))的时间复杂度相同,但也许我错过了一些事情,我只是想澄清一下。
答案 0 :(得分:0)
您确实回答了自己的问题。将所有输入的时间缩短一半不会改变理论上的时间复杂度。理论上的时间复杂度只是衡量随着输入变得越来越大,运行时间增长了多少。而且您输入的代码仍然需要两倍的时间(因此,它是O(n)
)。