我一直在使用Soundex算法,我發現它已經準備好用Java http://introcs.cs.princeton.edu/java/31datatype/Soundex.java.html。 該程序的主要用途是準備一個.cvs文件,然後在將其條目保存到數組後,它會藉助此算法檢查這些數組中是否存在語音相似性。 (更多關於soundex算法http://en.wikipedia.org/wiki/Soundex)。Java:使用Soundex算法建立一個龐大的數據庫
我的.cvs文件有或多或少的200.000條目,因此,需要5個小時來檢查30.000條目,這一事實我認爲很慢。 [我的算法檢查數組的所有條目,除了那些已經檢查過的 - 所以,我認爲這裏沒有問題。
所以,我的問題是: 有沒有辦法縮短這個時間?
我一直在考慮用SQL的幫助直接將數據庫連接到程序,但我不知道是否有另一種方法可以做到這一點,速度會更快。
請任何建議將是非常有益的。
可能不適合SO ...但是關係數據庫在soundex集合比較方面相當不錯。當然,有很多方法可以將你的java代碼綁定到你的數據庫 - 有很多方法。 – Randy
200,000不是一個龐大的數據庫。我會懷疑你的算法。您需要確保每個條目只轉換一次,因爲檢查每個條目與其他所有條目是O(N ** 2),即使您沒有進行冗餘比較也能正確執行。 – EJP