【发布时间】:2015-06-22 20:49:22
【问题描述】:
我有一个简单的函数 reverseWords(),它可以修改字符串中的单词。例如。 S = "this is a string" 的输入给出了 "siht si a gnirts" 的输出
我想知道这个函数的大 O 是什么。是 O(N)、O(N^2) 还是 O(N* M)?
def reverseWords(S):
# code in Python 2.7
listA = S.split()
output = []
for element in listA:
output.append(element[::-1])
return (" ".join(output))
是 O(N)、O(N^2) 还是 O(N* M)?
- O(N^2) 因为我们有一个嵌套循环,例如。传递一次输入,外循环,然后将每个字符反转为内循环
- O(N*M) 与上述原因相同,除了 M 表示为字符循环
- O(N) 因为...我忘了解释
【问题讨论】:
-
找到这个问题的答案最有趣的方法是创建各种样本输入并对其进行测试。 :)
-
提示:
reverse是 O(N),循环是 O(M)(M 是listA的长度)!
标签: python big-o time-complexity