题目四:
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进行排序。