所以我正在阅读两个文件并将每一行分别存储在两个不同的列表中。现在我必须检查第一个列表中的字符串是否存在于第二个列表中。
通过正常比较,这将花费O(n ^ 2)
但使用基于图形的数据结构,如 -
File1_visited [string] = True
File2_visited [string] = True。
我可以检查两者是否都是真的,然后字符串出现在两个文件中。这使它成为O(n)。
是否有其他方法可以减少时间复杂度并且我的理解是否正确?
示例场景 -
File1中 -
文本1 文本2 文本3 文本4
File2 -
Text5 Text7 文本1 文本2
比较这两个文件。
答案 0 :(得分:0)
是的,您从O(n^2)
转到O(n)
。您可能也想查看空间复杂性,您必须为其中一个存储图形,而对于另一个,您将使用更少的空间。如果你不关心内存,HashMap看起来很适合这种情况,或者如果它更容易实现,那么它就是任何其他数组。