日期:2014-05-20  浏览次数:20696 次

阿里巴巴笔试题 2013西安地区
下面一个题目大家谈论下。我只有30分了。。。全部拿出来。

1.一个有10亿条记录的文本文件,已按照关键字排好序存储,
请设计算法以快速的从文件中查找关键字的记录。
2填空题(8分)
当存储数据量超出单节点数据管理能力的时候,可以采用的办法是数据库
sharding的解决方案,也就是按照一定的规律把数据分散存储在多个
数据管理节点N中(节点编号为0,1,2,,,,N-1)。
假设存储的数据时a  请完成为数据a计算存储节点的程序。

#define N 5
int hash(int element){
   return element*2654435761;
}
int shardingIndex(int a){
    int p = hash(a);
    _________________________; //这里是空格
    return p;
}


3.(6分)两个较长的单向链表a和b,为了找出及诶单noed满足node in a
并且node in b。请设计空间使用尽量小的算法(用c/c++,java 或者伪代码)

还有很多数学方面的题目 就不发了
阿里巴巴 笔试题

------解决方案--------------------
第二题
http://hi.baidu.com/zymill/item/350cf75057f5ab9c8c12ed8f
p=p mod 2^32
------解决方案--------------------
引用:
第二题
http://hi.baidu.com/zymill/item/350cf75057f5ab9c8c12ed8f
p=p mod 2^32



帅哥能解释一下吗?是一致性hash吗?那个N没什么用吗?
------解决方案--------------------
第一题先分段,例如关键字mod 1000就可以分成1000段,由于是关键字排好序的,每段中进行二分查找应该就行了吧,肯定还有更好的方法吧