algorithm - 给定一个已排序的数字数组,如何找到小于 x 的数字的大小

标签 algorithm binary-search

Possible Duplicate:
finding all numbers less than x in a BST

如何修改二分搜索以查找排序数组中小于特定数字的数字数量?

最佳答案

如果您有一个已经排序的数字数组,只需使用 binary search algorithm 在排序数组中查找项目的插入点即可。插入点的索引为您提供小于目标数量的元素数量。

在您的评论中,您提出了两个很好的问题:

  • 如果号码不在列表中怎么办?

要处理这个问题,您需要继续搜索,直到找到数字应该存在的点(如果存在的话),即当前元素大于 x 且前一个元素小于 x 的索引。

  • 如果有重复怎么办?

要解决这个问题,不要在第一次找到元素时停止,而是继续搜索,直到下限和上限相遇。如果您达到等于 x 的值,请按照与发现过高数字相同的方式处理它并继续平分。

关于algorithm - 给定一个已排序的数字数组,如何找到小于 x 的数字的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128759/

相关文章:

algorithm - 我的 padovan 系列代码有什么问题?

javascript - 寻找最大的回文数,它是两个简单(素数)五位数的乘积。 Javascript

algorithm - 数字的分解优化

c++ - C++ lower_bound()搜索最接近目标值的元素

Javascript 计数排序实现

algorithm - 如何在 sas 中计算 π?

algorithm - 二分搜索+排序与线性搜索(大O)

algorithm - 使用二进制搜索查找数组中数字的位置

c - 如何在字符串数组上使用二分查找

c - K&R二分查找代码