題目四:
http://topic.csdn.net/t/20061008/22/5068270.html
(5分)對給定的上億條無序的url,請按照domain、site以及path分別排序,並請指出排序過程中可能會遇到的哪些問題?如何提高效率?
例如:http://www.baidu.com/path/about.html,domain、site以及path的定義分別如下:
Domain:baidu.com
Site:www.baidu.com
Path: www.baidu.com/path
Answer:
1.題目給定的是"上億條無序的url",第一個感覺就是這麼多的數據不可能同時裝入到內存中,"External Sorting"是必然的了。第二個感覺就是URL的長度差別很大的,有的很長,有的卻很短,選擇什麼樣的數據結構來存放這些數據就需要考慮。定長的數據應該是不合適的,變長的數決是個選擇。
2.在domain,site,path中,我們可以先對domain排序,處於同一個domain的URL可以存放在一起,這樣他們有類似的數據,例如:XX.baidu.com/XXX。然後我們可以對site進行排序,最後對path進行排序。