在这种情况下,嵌套循环的时间复杂度是多少?

时间:2019-04-12 01:34:13

标签: python-3.x time-complexity

我正在尝试标记文本文件。我使用readlines()在文本文件中创建了一个行列表,并计划遍历该列表中的每个句子,以使用re.split()拆分每个句子。然后,我计划遍历结果列表,将每个单词添加到字典中,以计算每个单词出现的次数。嵌套列表的这种实现会导致O(N ^ 2)还是O(N)?谢谢。

这段代码只是我打算如何实现的示例。

    for sentence in list:
        result = re.split(sentence)
        for word in result:
            dictionary[word] += 1

1 个答案:

答案 0 :(得分:0)

for sentence in list: # n-times (n = length of list)
    result = re.split(sentence)
    for word in result: # m-times (m = number of words in sentence)
        dictionary[word] += 1

因此运行时将为n * m或n平方。

解决计数问题的更好方法是使用collections.Counter。