gpt4 book ai didi

c - bsearch 和搜索范围?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:44 25 4
gpt4 key购买 nike

bsearch 非常适合直接搜索,但是如果我需要例如搜索范围,我应该使用什么?

更新

例如,如果我想找到 a 和 b 之间的值范围 (a >= x < b)。

更新

范围值可以不相等。所以如果我有数组(10,20,30)并且我试图找到“15”我想获得地址(指针)到最近的最小范围,在这个例子中这是范围(10,20)

最佳答案

bsearch 采用的参数之一是要搜索的元素数。因此,而不是,例如,100,让它搜索 42 ...

bsearch("foo", data, /*100*/42, sizeof *data, cmpfx);

更新后

我要做的是手动(意味着我会编写代码)二进制搜索。

想法是将(剩余)数组的中间元素与下限和上限进行比较。如果较小则下限在小半部重新搜索;如果大于上限,则在大半部重新搜索;否则你已经在范围内找到了一个元素。


第二次更新后

你想返回一对指针?

您必须将它们包装在一个结构中,或者将指针的地址传递给函数……或其他东西。

但现在您有一个更简单的搜索:搜索直到找到值(并返回 0 长度范围)或直到您将要失败。该范围介于您上次查看的数组值和(具体取决于您如何到达失败情况)一侧的值或 EMPTY(如果您位于数组末尾)之间。

关于c - bsearch 和搜索范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5424126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com