2010-08-21 78 views
-1
每個尺寸TB的

兩個文件。甲文件比較工具進行比較的file1與file2中的哪一個是合適的數據結構

i個線路i個線路。如果它們相同,則打印。哪種數據結構是合適的。

  1. B樹
  2. 鏈表
  3. 哈希表
  4. 沒有一個
+1

這顯然是一個家庭作業的問題,所以我們會幫你回答自己的問題。你能想到這些解決方案的優點/缺點嗎?爲什麼一種方法適合,其他方法不適合? – Wolph 2010-08-21 20:11:53

+0

明顯是內存陣列中最好的。這允許您直接訪問文件的每一行。 – Polaris878 2010-08-21 20:14:57

+0

這將放棄答案,但我不願看到太久:)這個問題的關鍵是,輸入文件_terabytes_大小的人的奮鬥。 – 2010-08-21 23:26:35

回答

2

的你需要能夠在一個時間緩衝了至少一條線。這裏有一種方法:

While neither file is at EOF: 
    Read lines A and B from files one and two (each) 
    If lines are identical, print one of them 

翻譯成合適的編程語言,問題就解決了。

注意,沒有花哨的數據結構都參與其中。

+0

不一定。如果你可以在文件中向後尋找,你可以直到你在這兩個文件中找到EOL(在這種情況下,你從標記複製到這裏到輸出)一次比較一個字符,或者你找錯配,在這種情況下,你將尋求在每個文件的最後一個字符不是EOL。然後你重置你的標記。將EOF當作EOL對待,並且除了一些文件偏移之外,您已經沒有任何緩衝。 – Ian 2011-04-27 08:13:52