这种方法的时间复杂性

时间:2016-07-22 18:13:56

标签: java python time time-complexity

所以我正在阅读两个文件并将每一行分别存储在两个不同的列表中。现在我必须检查第一个列表中的字符串是否存在于第二个列表中。

通过正常比较,这将花费O(n ^ 2)

但使用基于图形的数据结构,如 -

File1_visited [string] = True

File2_visited [string] = True。

我可以检查两者是否都是真的,然后字符串出现在两个文件中。这使它成为O(n)。

是否有其他方法可以减少时间复杂度并且我的理解是否正确?

示例场景 -

File1中 -

文本1 文本2 文本3 文本4

File2 -

Text5 Text7 文本1 文本2

比较这两个文件。

1 个答案:

答案 0 :(得分:0)

是的,您从O(n^2)转到O(n)。您可能也想查看空间复杂性,您必须为其中一个存储图形,而对于另一个,您将使用更少的空间。如果你不关心内存,HashMap看起来很适合这种情况,或者如果它更容易实现,那么它就是任何其他数组。