pie*_*fou 6 algorithm binary-search programming-pearls
这是描述的问题Programming pearls.我无法理解作者所描述的二进制搜索方法.任何人都可以帮忙详细说明吗?谢谢.
编辑:我一般可以理解二进制搜索.我只是无法理解如何在这种特殊情况下应用二进制搜索.如何确定缺失的数字是否在某个范围内,以便我们可以选择另一个.英语不是我的母语,这是我无法理解作者的一个原因.所以,请使用普通英语:)
编辑:谢谢大家的好评和评论!我从解决这个问题中学到的最重要的一课就是二元搜索不仅适用于排序数组!
本网站上有更多信息.引自那里:
"根据表示每个整数的20位来查看这个二进制搜索是有帮助的.在算法的第一遍中,我们读取(最多)一百万个输入整数,并将那些带有前导零位的数据写入一个磁带,这两个磁带中有一个包含最多500,000个整数,因此我们接下来将该磁带用作当前输入并重复探测过程,但这次是在第二个磁带上.如果是原始输入磁带包含N个元素,第一遍将读取N个整数,第二次传递最多为N/2,第三次传递最多为N/4,依此类推,因此总运行时间与N成正比.可以找到缺失的整数通过在磁带上排序然后扫描,但这需要与N log N成比例的时间."
正如您所看到的,这是二元搜索算法的一种变体:将问题分成两部分并解决其中一个较小部分的问题.
| 归档时间: |
|
| 查看次数: |
4945 次 |
| 最近记录: |