517得票3回答
JavaScript中比较字符串的最佳方法是什么?

我正在尝试优化一个在JavaScript中进行字符串二分查找的函数。 二分查找需要知道关键字==或<中间值。 但是这要求在JavaScript中进行两次字符串比较,不像类似于C语言中有strcmp()函数,它返回三个值(-1, 0, +1)表示(小于、等于、大于)。 是否有一种原生...

214得票22回答
Python中的二分查找(又称折半查找)

是否有一个库函数可以在列表/元组上执行二分搜索,并返回找到项的位置,如果未找到则返回“False”(-1、None等)? 我在bisect module中找到了bisect_left/right函数,但是即使在列表中没有该项,它们仍然会返回一个位置。这对于它们预期的使用完全没问题,但我只想知...

156得票15回答
如何计算二分查找的复杂度

我听别人说,由于二分搜索将搜索所需的输入减半,因此它是O(log n)算法。由于我不是数学背景,我无法理解它。有人能详细解释一下吗?这与对数级数有关吗?

122得票9回答
在哪里可以获取“有用的”C++二分查找算法?

我需要一个与 C++ STL 容器兼容的二分搜索算法,类似于标准库头文件 <algorithm> 中的 std::binary_search,但我需要它返回指向结果的迭代器,而不是返回一个简单的布尔值告诉我元素是否存在。 (顺便说一句,标准委员会在定义 binary_search...

116得票17回答
如何在两个已排序数组的并集中找到第K小的元素?

这是一个作业问题,已经介绍了二分查找: 给定两个数组,分别包含N和M个升序排列的元素,不一定唯一: 在两个数组的并集中查找第k小的元素的时间有效算法是什么? 据说需要 O(logN + logM) 的时间,其中 N 和 M 是数组长度。 让我们把这两个数组命名为 a 和 b。显然,我们可以...

116得票35回答
在最优方式中查找二叉搜索树中第k小的元素

我需要在二叉搜索树中找到第k个最小的元素,且不能使用任何静态/全局变量。如何高效实现?我目前考虑的解决方案是,最坏情况下通过遍历整棵树进行O(n)操作。但我感觉这里没有充分利用二叉搜索树的性质。请问我的解决方案是否正确,还有更好的方案吗?

93得票14回答
在二分查找中计算中间值

我正在阅读一本关于算法的书,其中提到了下面这个二分查找的算法:public class BinSearch { static int search ( int [ ] A, int K ) { int l = 0 ; int u = A. length −1; in...

81得票17回答
哈希查找和二分查找哪一个更快?

给定一个静态对象集合,即一旦加载便很少或不会更改,需要进行重复的并发查找以获得最佳性能,那么使用什么比较器的数组二分查找或HashMap哪个更好? 答案与对象或结构类型有关吗?哈希和/或相等函数的性能?哈希唯一性?列表大小?HashSet大小/集合大小? 我正在查看的集合大小可以从500k...

76得票28回答
在Javascript中的二分查找

我正在尝试在JavaScript中实现二分查找算法。 似乎没什么问题,但我的返回语句似乎返回undefined。 有人能告诉我这里出了什么问题吗? Fiddle: http://jsfiddle.net/2mBdL/var a = [ 1, 2, 4, 6, ...

71得票8回答
寻找排序数组中第一个大于目标值的元素

在一般的二分查找中,我们要寻找出现在数组中的值。然而有时候,我们需要找到第一个比目标值大或小的元素。 这里是我丑陋、不完整的解决方案: // Assume all elements are positive, i.e., greater than zero int bs (int[] a,...