问题标签 [bsearch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
536 浏览

java - bSearch java程序

我不知道我的代码有什么问题。我应该放入一个输入文件并将数字从最低到最高排序。当我运行程序时,它返回: insertInOrder 后 P4input.txt 中的 25 个整数的排序数组:31 5 8 8 19 23 25 27 27 31 69 70 71 75 90 98 103 103 109 140 145 145 153 157 162

我不知道为什么第一个数字乱序。

0 投票
1 回答
531 浏览

c++ - C中的Bsearch函数问题

我正在尝试使用 bsearch,但搜索结果一直保持为 NULL。我的名称数组按字母顺序排序。我是 C 的新手,需要你的帮助来了解我哪里错了。

这是一个数组

这是结构

比较功能

和搜索

它是 C 而不是 C++。这就是我现在正在学习的内容。我正在使用 VS 2015,它适用于 C 和 C++。我正在编辑一些更改以使其正常工作并编译。所以比较是

}

bsearch 是

0 投票
1 回答
389 浏览

c - 比较函数中的 Bsearch 和垃圾值

我有以下程序:

在“比较”函数中,“c1”变量(要搜索的键)正确显示,但是 v2 变量中有垃圾输出。

这是一个示例输出:

我无法理解这种行为。

0 投票
0 回答
34 浏览

java - 使用 bSearch 对从文件中读取的整数进行排序

我不知道应该用什么代替最后一行的“中间”,有人可以帮忙吗?

0 投票
1 回答
2718 浏览

c - bsearch() - 在结构数组中查找字符串

我有一个看起来像这样的结构:

形成一个有序数组:

我想使用 bsearch() 在该数组中搜索字符串并获取指向该结构的指针。到目前为止,这已经奏效:

但是,这有点小技巧,并且仅在字符串恰好是结构的第一个成员时才有效。在结构数组中查找字符串并返回指向该结构的指针的更好方法是什么?

0 投票
1 回答
208 浏览

c - C bsearch 总是返回指针=NULL

有人能告诉我为什么在这个程序中 bsearch 函数总是返回指针 = NULL 吗?

请专注于 bsearch 的部分,因为其他的东西运作良好。

我将非常感激:)

0 投票
2 回答
243 浏览

c++ - 如何在 std::bsearch 中使用成员函数

我有一个 C++ 类,但我也在使用一些低级 C 并且需要使用该bsearch函数。的最后一个参数bsearch是一个比较函数,我想以一种允许它访问类的 const 私有变量的方式实现该函数。

问题是,如果我将比较函数设为成员函数,它将无法工作,因为它不能转换为常规函数指针。如果我创建一个非成员函数,我可以将其传递给bsearch,但无法访问该类的私有变量。

该怎么办?

例子: 在此处输入图像描述

3 表示有 3 个元素。16、32、56 是偏移字节。我需要 bsearch 来搜索演员。我在偏移数组中搜索。我需要一个比较函数来比较演员,但我也需要 const void * actorFile用于计算比较函数中位置的指针。actorFIle 是类私有变量。

0 投票
1 回答
391 浏览

c++ - 如何在标头中声明比较函数

我在 c++ 类文件中为 bsearch 编写了比较函数

如何在头文件中声明?需要静态关键字吗?

0 投票
0 回答
654 浏览

c - Bsearch用C中的字符串

所以我试图使用 C 中的 bsearch 函数在字符串数组中进行二进制搜索。出于某种原因,它总是返回 NULL。对于 bsearch 的比较功能,我没有使用 strcmp,我自己做了一个,令人惊讶的是,它适用于我手动实现二进制搜索功能。无论如何,我会稍微解释一下,这是我的主要代码:

这段代码的第一部分只是创建一个字符串数组(命名词),其中包含 N 个长度为 MAX 的字符串(这是在开头定义的宏)。我已经测试了这部分并且它可以工作,所以这不是问题。

之后,输入 seek_word,这正是我们试图在 'words' 中找到的单词。我调用 bsearch 作为比较函数,我使用了我自己创建的函数。这是它的样子:

实际的比较工作是在 compare_words 函数中完成的,我从 b_compare_words 函数中调用了该函数,我刚刚将 void 指针转换为 char 指针。无论我对此进行什么测试,我都会得到 -1(意味着 bsearch 返回的指针为 NULL)。现在这是有趣的部分。除此之外,我制作了自己的二进制搜索函数,它做同样的事情并且它可以工作(你可以看到我在下面注释掉的部分)。该函数称为 bin_search_string,它看起来像这样:

如您所见,该函数使用了我也传递给 bsearch 的相同 compare_words 函数。但是当我使用自己的函数测试我的程序时,它确实有效(返回找到字符串的索引)。那么,有什么想法为什么 bsearch 不起作用?提前致谢。

0 投票
1 回答
1229 浏览

c - bsearch() 在 C 中的字符串数组上

我正在 C 中实现一个代码,以便在字符数组( string )中复制一个字符串,然后对其进行 bsearch 。但出乎意料的是,对于应该为真的结果,bsearch 返回假。我猜这与我在插入过程中如何首先插入字符串有关。您可以将其视为对 btree 的叶节点的插入和搜索。

我在多文件框架中对此进行编码,因此无法发布所有代码。贴出相关部分

字符串数组的结构以便于可视化 -

插入功能 -

搜索代码 -

插入函数中使用的 cstring_cmp 函数 -

如果有人想知道键是什么,这里是一个键数组是如何更早地填充的,并且每次都使用单独的键调用一个 set / get 函数(set / get 函数调用上述函数)

从文件中跟踪加载以生成键数组的代码 - ( __samples 保存键)

PS:这部分不是我写的,是我前辈搭建框架的时候写的。

可能是什么问题呢?我已经做了很多谷歌搜索,但还没有积极的结果。

谢谢你!