腾讯算法面试题——最高效的搜索算法
题目大概:有一百万个地址,现在随机在这一百万地址中生成一个数值,问!有什么算法,能最快速最高效的找到这个数值的地址!例如最笨的:
1. 设置起始地址
2.读取数值
3.判断是否和想要的相等
4.相等的话,输出这个地址!不相等,地址+1,继续读取判断
请各位发表自己的看法,中文描述或语言描述都可以!
我只是路过打酱油的。 我只是路过打酱油的。 我只是路过打酱油的。 我只是路过打酱油的。 是有序的不?是有序的话用下折半咯。 激动人心,无法言表! 我只是路过打酱油的。 楼主加油,鱼C加油!我们都看好你哦! 目前我学的东西还不知道怎么办好,我只是路过打酱油的。 也能有算法? 有序的话就折半,如果是无序的话,那就不知道了,唯一 一点想法就是,如果是一次找多个的话呢,那就多线程找 我只是路过打酱油的。 可能分几种情况吧:
1。地址连续,那可以用偏移就直接找到了
2。 地址不连续,但有序,可以用折半查找
3。地址不连续且无序,貌似用哈希表最有效了。
呵呵,请楼主指教 自己不是很懂,跟楼上兄弟学习了。 二分法,快速查找法 我只是路过打酱油的。 我都不懂 不过见识了 真是难得给力的帖子啊。
云炀 发表于 2013-4-10 02:27 static/image/common/back.gif
有序的话就折半,如果是无序的话,那就不知道了,唯一 一点想法就是,如果是一次找多个的话呢,那就多线程找 ...
先找最大数、最小数、中间数
然后比较上面三个数 (缩小查找范围)
...................
我只是路过打酱油的。