我有一個問題,我現在的算法使用一種天真的線性搜索算法,通過匹配字符串從多個數據文件中檢索數據。在Perl中更快地搜索文件
它是這樣的(僞代碼):
while count < total number of files
open current file
extract line from this file
build an arrayofStrings from this line
foreach string in arrayofStrings
foreach file in arrayofDataReferenceFiles
search in these files
close file
increment count
對於一個大的現實生活的工作,這個過程可能需要大約6個小時才能完成。
基本上我有一大組字符串,它使用程序來搜索相同的一組文件(例如,在1個實例中爲10個,在程序運行的下一個實例中爲3個)。由於參考數據文件可以改變,我不認爲建立這些文件的永久索引是明智的。
我幾乎是一個初學者,並沒有意識到任何更快的未排序數據技術。
我一直在思考,因爲搜索在一段時間後重復使用,是否有可能在數據引用文件中預建特定行的位置索引,而不使用任何外部perl庫(構建文件數組後) ?該腳本將被移植到可能只安裝了標準Perl的服務器上。
我認爲在處理工作之前花3-5分鐘建立某種搜索索引可能是值得的。
有索引/搜索適用於我的情況的具體概念嗎?
謝謝大家!
謝謝,這有助於減少我的處理時間,只需在處理內存時匹配所有內容即可。 – urbanspr1nter