原帖由 xtthnfr 于 2007-8-31 18:41 發(fā)表
工作9年了,對(duì)算法有點(diǎn)感觸,我來說說。
有次看電視,采訪一個(gè)廚師里面的大師,他的招牌菜是魚香肉絲。
這個(gè)菜,估計(jì)中國非常多的廚師都會(huì)做。
采訪他時(shí),他說,他炒菜時(shí),要先看看這菜是給誰吃。
...
原帖由 cugb_cat 于 2007-8-31 19:56 發(fā)表
曾經(jīng)做過兩年的ACM競賽,依靠的只是算法,雖然現(xiàn)在工作中用到很深的算法的情況不多,但,有了那些基礎(chǔ)后,理解別人的算法,已有的算法,是非常容易非常簡單的事情。
原帖由 福瑞哈哥 于 2007-9-3 10:42 發(fā)表
樓主的url排重有什么好方法嗎?
bloom-filter?還是干脆用map-reduce?你所列的前幾種方法都無法適應(yīng)大規(guī)模的應(yīng)用。
原帖由 nully 于 2007-9-3 13:20 發(fā)表
我的算法:
1.重排URL變量
2.md5一次,16個(gè)字節(jié)128位
3.將16字節(jié)運(yùn)算得到34位數(shù)據(jù)
4.34位數(shù)據(jù)剛好使用2G文件(* 8 bit)來記錄是否出現(xiàn)過
可能有重疊情況發(fā)生,但16G的位空間應(yīng)該夠用了。
原帖由 xtthnfr 于 2007-9-3 18:13 發(fā)表
用MD5的話.....其實(shí)本質(zhì)上就是自己的Hash函數(shù),用MD5來代替.
但是,MD5運(yùn)算過于復(fù)雜,每運(yùn)算一次需要的CPU運(yùn)算次數(shù),過多.....可做個(gè)實(shí)驗(yàn)....50億次的MD5運(yùn)算....花費(fèi)時(shí)間太長.
所以,自己來設(shè)計(jì)的HASH函數(shù) ...
原帖由 nully 于 2007-9-3 18:23 發(fā)表
就我這個(gè)算法,I/O才是瓶勁,對(duì)于整個(gè)爬蟲來說,網(wǎng)絡(luò)I/O是瓶頸。
自己寫出來效果很難比md5好,重疊率較高
原帖由 xtthnfr 于 2007-9-3 19:04 發(fā)表
MD5肯定玩不轉(zhuǎn)的.....運(yùn)算一次,耗費(fèi)時(shí)間太長.
現(xiàn)在的網(wǎng)絡(luò)速度,對(duì)于搜索引擎公司來講,不是啥問題.
如果,你抓取的URL總數(shù)是50億....那么你要處理的URL估計(jì)就會(huì)是 50 X N 億次.
把所有的URL排重都放到 ...
原帖由 doctorjxd 于 2007-9-6 17:04 發(fā)表
算法與兵法
將軍說:兵法很重要,有了它才能決勝千里。
小兵說:也讀過兵法,總覺得太高深,實(shí)際工作中和敵人對(duì)砍才是主要工作,練好武術(shù),增強(qiáng)體質(zhì)才是王道。
將軍說:你這樣人為就不對(duì)了,兵法是戰(zhàn)爭 ...
當(dāng)然,那些還沒解決生存問題的程序員們,能把老板交代的工作完成了,是第一重要的,算法離他們還太遠(yuǎn)。
歡迎光臨 Chinaunix (http://www.72891.cn/) | Powered by Discuz! X3.2 |