大量URL去重

2021-09-01 03:53:52 字數 485 閱讀 5486

[size=medium]問題:

[i]有大量的字串格式的url,如何從中去除重複的,優化時間空間複雜度[/i]

我的思路,

1. 將url存入hash鍊錶,[b]每個url讀入到hash鍊錶中[/b],遇到重複的就捨棄,否則加入到鍊錶裡面,最後遍歷得到所有不重複的url。空間複雜度m,時間複雜度為o(n+n/m),m為不重複的url,n為總url數,但是m無法**,所以存在風險,可能記憶體不足以儲存所有的不重複url。

2. 為了解決記憶體可能不足的問題,需要把hash鍊錶變化成普通的hash表,[b]每個hash表元素指向乙個檔案檔案[/b],這個檔案記錄了所有該hash值對應的無重複的url,那麼在加入url的時候就遍歷對應檔案中的url,沒有重複則加入到檔案中。這樣做時間複雜度沒有提公升,但是每次都要讀寫檔案,消耗的時間應該是上一種方式的三倍,而對記憶體的要求比較小。乙個改進是[b]加入url的時候進行排序[/b],這樣能減少比對的次數。

歡迎討論和拍磚!![/size]

url去重方案

url去重方案 1.通過資料庫進行url的去重,獲取一條資料的時候,將url也儲存到資料庫中,在獲取其他url的時候,先從資料庫中查詢是否存在這個url,如果存在就丟棄,反之就儲存。效率太低。2.通過set 在記憶體中符url進行去重。對記憶體的占用太高。eg 100000000條url 50字元 ...

爬蟲URL去重策略

爬蟲為何要進行去重 特點 應用簡單 效率非常低下 使用方法 效率 效率十分低下,並使用很少。不進行計算 特點 速度較快 記憶體占用會越來越大 效率 100000000 2byte 50個字元 1024 1024 1024 9g 特點 md5能將任意長度字串壓縮成固定長度md5字串,並且不會重複。效率...

論 大量文字內容去重的方式

本文由 luzhuo 編寫,請尊重個人勞動成果,請保留該資訊.原文 微博 最近拿到大量的文字檔案,檔案的大小少個幾十m,多則幾十g,這麼多且大的文字想必有很多的文字是重複的,於是相對它進行去重.想出了第一種方案,沒想到記憶體很快就被撐爆了,於是想出了第二種方案,不過那個效率,不好意思說了.網上說的根...