52得票11回答
28得票19回答
你能让线性搜索变得有多快?

我想要优化这个线性搜索:static int linear (const int *arr, int n, int key) { int i = 0; while (i < n) { if (arr [i] >= ke...

9得票1回答
Fortran中二分查找算法的效率与线性查找算法的效率比较

这个问题涉及在相邻的存储中针对预排序数组进行线性搜索和二进制搜索的效率比较。 我有一个用Fortran(77!)编写的应用程序。我的代码部分经常需要在数组中查找索引,使得gx(i)<= xin <gx(i + 1)。我目前实现了这个功能为二进制搜索 - 抱歉,使用Fortran ...

8得票2回答
用二分搜索优化一个大的if-else分支

所以我的程序中有一个if-else分支,包含大约30个if-else语句。这一部分每秒运行100多次,所以我看到了优化的机会,并使用函数指针数组(实际上是平衡树映射)使其执行二进制搜索,而不是进行线性的if-else条件检查。但它的速度比以前慢了70%。 我制作了一个简单的基准测试程序来测试...

8得票4回答
在Java中,对于一个集合来说,是先排序再使用二分查找还是直接使用线性查找更有效?

假设我有一个对象的集合: List<String> myList = populateMyArrayList(); //Here I am having an ArrayList with 1000 elements 哪种方法更好: 1:归并排序然后二分查找 Collec...

8得票3回答
java.util.Collections.contains() 如何比线性搜索更快?

我一直在尝试各种不同的搜索集合、集合内集合等方法,做了很多愚蠢的小测试来验证我的理解。以下是一个让我困惑的例子(源代码在下面)。 简而言之,我正在生成N个随机整数并将它们添加到列表中。该列表未排序。然后我使用Collections.contains()在列表中查找值。我故意寻找一个我知道不会...

7得票1回答
一个函数能否根据条件语句返回不同的类型?

我在想,是否有可能根据函数中的条件返回不同类型: 如果删除“|| bool”和“if / else”语句,该代码将正常工作。 提前感谢您。 fn main() { let vector: Vec<i32> = vec![0, 2, 5, 8, 9]; let t...