百度笔试题5.2
来源:互联网 发布:大屏电子书阅读器 知乎 编辑:程序博客网 时间:2024/06/05 11:37
二:算法题
你现在有一个文件,文件中顺序存有N个记录,R1,R2,...,RN,这些记录不是有序的,但是你知道一个整数M,这些记录满足R1<R2<...<RM以及RM+1<RM+2<...RN.
1,设计一个算法或编写一个程序,将文件中的记录排序为R1'<R2',<…<,RN',算法或程序读取文件的次数为O(N),不限内存使用。
2,设计一个算法或编写一个程序,将文件中的记录排序为R1'<R2'<...<RN',算法或程序读写文件的次数为O(N),空间复杂度为O(1),(亦即,你使用的内存大小和M,N均无关。)
Answer1:
第一个问题,因为内存不限,文件可能很大,内存无法一次容纳,所以分批将文件中的记录多次读入内存,然后进行外部排序。
三:系统设计题
网络上所有的链接都可以用以下的三元素进行描述:
From_url(链接所在页面的URL)
to_url(链接所指向的URL)
anchor(链接在页面上所显示的内容)
现在假设所有的网页链接信息(from_url / to_url /anchor)按from_url为轴都存储在M个(M:1k以内)巨型数据库中:
1, 链接存储形式:from_url to_url anchor;
2, 一个from_url的所有的to_url都存储在同一个数据库中;
3, 假设每个数据库存储的数据量相同
4, 要求设计一个获取所有链接分发程序,将这些数据均匀分发到N个远程数据库中(N:100以内)要求做到:1所有to_url相同的链接需要分到同一个远程数据库,2所有to_url的站点相同的需要分发到同一个远程数据库,3每个远程数据库获取的链接总数要尽量均匀,4每台数据库完成时间尽量保持一致5,获取网页的速度尽量快(从数据库中)
说明:对于url:http://mp3.baidu.com/m?tn=baidump3,其中mp3.baidu.com属于站点信息。
Answer:
对题目看得有点晕,是不是对于fromurl作散列,然后计算出存在哪个数据库上?然后再对tourl作散列,计算出存在哪个数据库上?当然也可以自己设计一个算法,将计算结果控制在1-M,之间(但如果以后数据库再加就不好办了)
由于散列算法很散,所以基本上每台服务器上的数据量相同。(自己设计的算法就不容易保证均匀)
不过没看明白为什么发到N个远程数据库,是做备份么?还是每个数据发的都不同?如果是备份,就根据散列后的数值,算出1组服务器(N个)。
- 百度笔试题5.2
- 百度网上笔试题
- 百度网上笔试题
- 百度网上笔试题
- 百度笔试题
- 百度网上笔试题
- 百度笔试题
- 2006百度笔试题
- 百度网上笔试题
- 百度笔试题
- 2007百度笔试题
- 百度笔试题 [软件工程师]
- 百度笔试题
- 2007百度笔试题
- 百度部分笔试题
- 08百度笔试题
- 08百度笔试题
- 百度笔试题
- Android Camera Framework Stream(三)
- hello android v3(2)
- 汇编基础 笔记5(《汇编语言》第七章)
- Web应用web.xml的Struts2的配置
- Hash算法
- 百度笔试题5.2
- 百度笔试题6.1
- 百度笔试题6.2
- 百度笔试题6.3
- Linux下常用压缩格式的压缩与解压方法
- Setting Up a Telnet Server in Ubuntu
- 百度笔试题7.1
- 图像处理开源库常用网址
- 【小李木耳】出品:不好意思!俺得了一百元的稿费。