javascript

java

python

c#

node.js

reactjs

android

php

c++

ruby-on-rails

html

jquery

git

css

ios

sql

.net

c

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

string

我在哪里可以获得“有用的”C ++二进制搜索算法?

我需要一个与C ++ STL容器兼容的二进制搜索算法,如标准库的upper_bound标题中的boost::binary_search,但我需要它来返回指向结果的迭代器,而不是一个简单的布尔告诉我是否 元素存在。

(另一方面,当他们为binary_search定义API时,标准委员会在想什么?!)

我主要担心的是我需要二进制搜索的速度,所以尽管我可以用其他算法找到数据,如下所述,我想利用我的数据被排序以获得二进制的好处这一事实 搜索,而不是线性搜索。

到目前为止boost::binary_searchupper_bound如果缺少原点则失败:

//lousy pseudo code
vector(1,2,3,4,6,7,8,9,0) //notice no 5
iter = lower_bound_or_upper_bound(start,end,5)
iter != 5 && iter !=end //not returning end as usual, instead it'll return 4 or 6

注意:只要与容器兼容,我也可以使用不属于std命名空间的算法。 比方说,像boost::binary_search

trans by 2019-08-13T23:13:45Z

algorithm - 如何在两个排序数组的并集中找到第k个最小元素?

这是一个家庭作业问题。 他们说需要a[i],其中b[i]a[i]是数组长度。

我们将这些数组命名为a[i]b[i]。显然,我们可以忽略所有a[i]b[i],其中i>ķ。
首先让我们比较a[k/2]b[k/2]。设b[k/2]&gt; a[k/2].因此我们也可以丢弃所有b[i],其中i>K / 2。

现在我们全部a[i],其中i&lt; k和所有b[i],其中i&lt; k / 2找到答案。

你下一步怎么做?

trans by 2019-08-04T11:19:24Z

algorithm - 以最佳方式在二叉搜索树中查找第k个最小元素

我需要在二进制搜索树中找到第k个最小元素,而不使用任何静态/全局变量。 如何有效地实现它?我在脑海中的解决方案是在O(n)中进行操作,这是最糟糕的情况,因为我计划对整个树进行顺序遍历。 但在内心深处,我觉得我没有在这里使用BST属性。 我的假设解决方案是正确的还是有更好的解决方案?

trans by 2019-07-10T20:24:47Z

算法 - 如何计算二进制搜索复杂度

我听说有人说由于二进制搜索将搜索所需的输入减半,因此它是log(n)算法。 由于我不是来自数学背景,所以我无法与之相关。 有人可以更详细地解释一下吗? 是否必须对对数系列做些什么?

trans by 2019-06-25T06:53:39Z

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

是否有一个库函数在列表/元组上执行二进制搜索并返回项目的位置(如果找到)和'False'(-1,None等),如果没有?

我在bisect模块中找到了函数bisect_left / right,但即使该项不在列表中,它们仍会返回一个位置。 这对于他们的预期用途来说非常好,但我只是想知道一个项目是否在列表中(不想插入任何内容)。

我想到使用bisect_left,然后检查那个位置的项目是否等于我正在搜索的项目,但这看起来很麻烦(我还需要检查边界检查数字是否可以大于我列表中的最大数字)。 如果有一个更好的方法我想知道它。

编辑为了澄清我需要这个:我知道字典非常适合这个,但我试图尽可能降低内存消耗。 我的预期用法是一种双向查找表。 我在表中有一个值列表,我需要能够根据它们的索引访问这些值。 而且如果值不在列表中,我希望能够找到特定值的索引或None。

使用字典是最快的方法,但会(大约)加倍内存需求。

我在问这个问题,认为我可能忽略了Python库中的某些东西。 正如Moe建议的那样,我似乎必须编写自己的代码。

trans by 2019-04-17T23:48:28Z

在JavaScript中比较字符串的最佳方法?

这个问题在这里已有答案:

  • 有没有JavaScript strcmp()?                                     4个答案

我正在尝试优化在JavaScript中对字符串进行二进制搜索的函数。

二进制搜索要求您知道密钥是C的枢轴还是strcmp()的枢轴。

但是这需要在JavaScript中进行两次字符串比较,这与C类似的语言不同,strcmp()函数返回三个值(-1, 0, +1)(小于,等于,大于)。

JavaScript中是否存在这样的本机函数,它可以返回三元值,以便在二进制搜索的每次迭代中只需要进行一次比较?

trans by 2019-02-02T05:36:00Z

1 共1页