c# - 二进制搜索算法的扩展,用于查找要在数组中搜索的键值的第一个和最后一个索引

标签 c# c++ c algorithm binary-search

问题是扩展二分搜索算法,以最有效的方式在排序数组中查找所有出现的目标值。 具体来说,算法的输入是(1)一个排序好的整数数组,其中有些数可能出现不止一次,(2)一个待搜索的目标整数。该算法的输出应该是一对索引值,指示整数在数组中的第一次和最后一次出现(如果确实出现)。 源代码可以是 c#、c、c++。

此外,我们可能需要多少次比较才能找到索引?

最佳答案

对于 C++,您可以查找 std::equal_range() 及其复杂性要求。只要您对基本算法感兴趣,就应该适用相同的一般规则,而不管实现使用何种语言。

关于c# - 二进制搜索算法的扩展,用于查找要在数组中搜索的键值的第一个和最后一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2218931/

相关文章:

c - typedef 与 C 中没有 typedef 的结构和枚举

c# - 公共(public)字符串的值始终为空

c++ - 将对象的值移动到另一个但避免复制

c# - ASP.NET Identity 2.0 随机无效 token

c++ - 凯撒密码 : how to calculate with shifting value > 10 ( or larger )?

c++ - 适合构图的智能指针

c - C 指针如何处理 36 位地址总线?

python - 专门为涉及线程和图形的项目研究 Python

c# - C# 中的 XslCompiledTransform 调试

c# - 如何创建自动隐藏标签?