binary-search相关内容

类似于Python的二进制搜索功能,可在排序列表中查找大于特定值的第一个数字

我试图用Python编写一个函数,该函数在排序列表中找到第一个数字,该数字大于我作为参数传入的特定值.我在网上找到了使用简单列表推导来实现此目的的示例,但出于我的目的,我需要经常在大型列表上执行此操作,因此以线性时间运行的搜索太昂贵了. 尽管在遇到一些无法正常工作的极端情况下,但我在编写类似于迭代式二进制搜索的函数时还是遇到了麻烦.顺便说一句,不需要该功能来处理列表中没有较大项目的情况.这是 ..
发布时间:2020-09-20 23:45:14 Python

在Ruby中是否有内置的二进制搜索功能?

我正在寻找一种内置的Ruby方法,该方法具有与index相同的功能,但是使用二进制搜索算法,因此需要预先排序的数组. 我知道我可以编写自己的实现,但是根据" Ruby#index方法VS Binary搜索",索引使用的内置简单迭代搜索比纯Ruby版本的二进制搜索要快,因为内置方法是用C编写的. Ruby是否提供任何进行二进制搜索的内置方法? 解决方案 Ruby 2.0引入了 和 ..
发布时间:2020-09-20 23:44:06 其他开发

Python中的二进制搜索(二等分)

是否有一个库函数对列表/元组执行二进制搜索,如果找到则返回项目的位置,否则返回'False'(-1,None等)? 我在 bisect模块中找到了bisect_left/right函数,但是它们仍然返回即使项目不在列表中也可以保留位置.完全适合他们的预期用途,但是我只想知道列表中是否有项目(不想插入任何内容). 我考虑过使用bisect_left,然后检查该位置处的项目是否等于我要搜索 ..
发布时间:2020-09-20 23:44:04 Python

在STL中返回索引的二进制搜索?

我需要一个二进制搜索功能. 我在标准库中找不到任何函数,该函数将返回找到的项目的索引,如果找不到,将返回下一个索引的按位补码元素大于我要查找的项目. 我正在寻找什么功能? 编辑: 我需要将一个项目插入已排序的向量中并保持其排序.这就是为什么我需要按位补全索引. 解决方案 我敢肯定,标准库不包含精确地您要查询的任何内容. 要获得所需的内容,您可能需要从std::low ..
发布时间:2020-09-20 21:31:22 C/C++开发

确定BigInteger在Java中是否是Prime

我正在尝试验证输入的 BigInteger 数字是否是主要数字! 但是,它对于较小的数字(如 13,31 )运行良好,但在 15 的情况下会产生错误;将其声明为素数.我无法弄清楚该错误,可能是隐藏在涉及 binary-search ! 的 squareroot()方法方法中! 请查看代码并帮助我指出错误!!! 呼叫代码:- boolean p=prime(BigInteger ..
发布时间:2020-09-20 20:30:08 Java开发

计算二进制搜索的平均运行时间,并确保搜索值在数组中

我知道二进制搜索对于排序后的数组为O(logn).但是,我想知道是否有可能在保证搜索值在排序数组中的情况下计算平均运行时间.这种保证使二元搜索在不到登录时间的情况下找到搜索值的可能性更大. 即第一步就有1/n的机会找到它,第二步就有2/n的机会找到,依此类推. 我不确定如何从这种直觉转变为计算平均运行时间.有什么想法吗? 解决方案 因此,在步骤i中找到它的概率为2 ^(i-1) ..
发布时间:2020-08-22 21:05:26 其他开发

二进制搜索中mid =(beg + end)/2和mid = beg +(end-beg)/2有什么区别?

这是C ++入门第五版问题3.26中的问题,我不知道它们之间的区别吗? 可能是第二个可以避免溢出. 解决方案 第二个可以避免溢出. 完全正确.不能保证beg+end是可表示的;但是在第二种情况下,中间值以及预期结果均不大于end,因此没有溢出的危险. 第二种形式也可以用于仿射类型,例如指针和其他随机访问迭代器,可以将它们减去以得出距离,但不能加在一起. ..
发布时间:2020-08-22 19:59:52 C/C++开发

我们可以对未排序的数组使用二进制搜索吗?

我有一个看起来像 的数组 2 6 8 5 34 1 12 我可以在某些子数组上使用二进制搜索吗? 解决方案 您只能在一种“未排序"数组上使用二进制搜索-可以像典型的二进制搜索一样在O(log n)时间内完成,但是使用了调整后的分而治之方法.您可以在此处找到相关讨论. ..
发布时间:2020-08-22 19:59:49 其他开发

二进制搜索算法的实现

我遇到了多个问题,这些问题使用二进制搜索的变体来得出最终答案.这些问题包括找到数字的平方根的底数,检查数字是否为完美的平方,在旋转数组中找到最小值,在数组中找到数字的第一个索引等. 所有算法都包含一个低,高和中变量,并对其进行了适当修改. 我在线阅读了这些算法的几种变体,这些算法中总是很容易出现一个错误,从而使它错过了极端情况.对于以下变体,是否有任何标准可以帮助我理解何时应使用哪个标 ..
发布时间:2020-08-22 19:01:17 其他开发

Python 3.x中的二进制字符串搜索

我无法使这种二进制排序正常工作.我在lower_bound和其他地方收到语法错误.我知道这很明显,但是我已经到了工作要点.有人可以帮我使它清楚地运行吗,我知道这是基本知识,但是我对此还很陌生. def main(): sortNames() binarySearch() def sortNames(): global names names = ["Chr ..
发布时间:2020-07-21 06:25:05 Python

在std_logic_vector [vhdl]上实现VHDL二进制搜索

我正在尝试为ASIC(它必须是ASIC的一部分)创建可综合的VHDL(函数或过程),它将在standard_logic_vector中查找第一个"1"并输出"1"所在的向量位置例如,我有一个8位slv,为"10001000"(位置3和7中为"1").如果使用此slv,则输出应为4(基于1的输出). 实际的VHDL将搜索一个最大长度为512位的slv.我尝试实现二进制搜索功能,但是出现综合错误 ..
发布时间:2020-07-18 18:33:56 其他开发

阵列搜索NP完成

给定一个大小为n的未排序数组,很显然,查找数组中是否存在元素需要O(n)时间. 如果我们让m = log n,则需要O(2 ^ m)时间. 请注意,如果对数组进行排序,则二进制搜索实际上需要O(m)时间(多项式),但是二进制搜索不能应用于未排序的数组. 是否有可能证明在数组中找到一个元素(是或否)的问题就m而言是NP完备的.我应该减少什么问题以及如何减少? 任何想法都会受到 ..