反转C++字符串的时间复杂度
Time Complexity in Reversing a C++ String
我的作业中有一个问题,即在只有 O(1) 额外内存的情况下,将C++字符串中的单词反转到位。我对 O(1) 额外内存的含义感到困惑。我理解 O(1) 通常意味着什么,无论输入有多大,计算时间都是恒定的,所以我猜我应该只添加一条内存来反向跟踪单词。有什么建议吗?
O(1) 额外内存意味着"最多使用一些恒定的额外内存"。 例如,你不能存储字符串的副本,因为这会占用 O(n) 空间,但你可以存储任何恒定数量的额外int
s、char
s 等。
更一般地说,像"O(1)"或"O(n)"这样的语句不一定是指运行时。 Big-O 表示法是一种描述函数的方式。 算法不能是 O(n),但其运行时可以是 O(n)。 算法的空间使用量同样可以是 O(1)、O(n)、O(2n) 等。
希望这有帮助!
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 时间复杂度 当具有复合数据类型(如元组或对)时?
- 如何计算此排序函数的时间复杂度?
- 计算两个代码块的时间复杂度
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 具有嵌套 if-else 的循环的时间复杂度
- 在C++中修改字符串的BigO时间复杂度是多少
- 有序地图字符串搜索与整数搜索之间的时间复杂度
- 字符串连接时间复杂度 c++
- C++字符串追加的时间复杂度 - 字符串 1 += 字符串 2;
- 将字符串插入到c++stl集的时间复杂度
- 提高给定字符串所有排列的时间复杂度
- 就时间复杂度而言,在另一个字符串中找到最小周期字符串是否可以更快
- 反转C++字符串的时间复杂度
- c++中字符串和字符数组声明的时间复杂度有什么不同?
- 在哈希表中创建字符串哈希值的时间复杂度