簡體   English   中英

這兩種解決方案中哪一種更有效? (Java Hashset)

[英]Which of these two solutions is more efficient? (Java Hashset)

我有一個充滿文字的文字文件。 我想將這些單詞中的每一個添加到哈希集中。 我也有一些我不想要的單詞。

是否更有效:

  • (A)將所有單詞添加到我想要的哈希集中,並刪除最后不想要的單詞的哈希集。
  • (B)檢查每個單詞是否在我不想要的單詞的散列集中,如果是,則忽略它。 如果不是,那么將它添加到我想要的單詞集中。

編輯
我想要的詞比我不想要的詞多得多。

答案完全取決於列表的大小。 如果你有99999個你不想要的單詞和1個單詞,你應該做選項A.如果你想要99999個單詞,你不需要1個單詞,你應該做選項B.

這背后的原因是顯而易見的 - 選項B變得越來越有效,不需要的單詞的散列集越小,因為您必須在使用選項B插入新單詞時檢查整個集合。

從純粹的理論觀點來看,兩者在最壞情況時間復雜度方面是相同的,但實際上,可能存在很大差異。

基本上,與大多數解決方案一樣,效率取決於您對數據結構的期望。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM