问题标签 [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 投票
2 回答
1815 浏览

c - qsort 和 bsearch 指针数组

我需要对指向结构的指针数组进行排序。事实上,我需要在地址之间进行搜索,以查看数组中是否存在指向结构的给定指针。不幸的是,我在这些结构中没有任何“可比”的东西,所以我只想按地址对它们进行排序。我的代码是这样的:

我尝试创建一个 compare_funct 只是将指针转换为 int 并返回它们的差异,但它似乎不起作用。特别是,当我执行 bsearch 时,即使我知道该元素包含在数组中,我总是得到一个 NULL 作为返回值。

0 投票
3 回答
461 浏览

c - 为什么 bsearch 返回一个 void *?

如果我传入 a const void * base,不应该bsearch也返回const void *结果吗?

0 投票
3 回答
2574 浏览

c - bsearch 和 struct(自定义类型)

我有一个这样的数组:

然后我尝试做一个bsearch,但我收到Segmentation fault消息:

.

0 投票
1 回答
1266 浏览

c - bsearch 结构中的多个项目

固定的。

包括

正如你所看到的,我已经把我认为正确的东西称为 bsearch,但是如果它是正确的,我不确定从这里去哪里。

0 投票
1 回答
369 浏览

c - 在 C 中使用动态数组进行 bsearch

您好,我的 bsearch() 函数有一些问题。我收到“访问冲突读取位置”异常。我使用它如下:

'file_array'是我的动态字符串数组,包含 2401 个元素。从 *.txt 文档导入的每个元素最长为 22 个字符。

'linecount'是整数 2402,指的是同一 *.txt 文档中的行号。

'WORDMAX'定义为 20

我真的不明白我的功能失败的原因。我猜 linecount 或 WORDMAX 的值有问题。

0 投票
1 回答
175 浏览

c - bsearch 对按降序排序的数组

我有一个按降序排序的数组,没有重复。我可以使用 libc 中的 bsearch 函数对其执行二进制搜索吗?为此,我是否需要更改传递给它的比较函数?

谢谢

0 投票
4 回答
2094 浏览

c - 如何在数组 bsearch() 中找到插入点?

在 C(标准库)中使用 bsearch() 可以快速找到排序数组中的条目。

但是,我如何计算插入新条目的位置(使用标准库)?

bsearch() 专门检查找到的项目的键是否等于传递的键,如果不是,则返回 NULL - 所以不能使用它。

0 投票
1 回答
509 浏览

c++ - 寻求 GMP 二进制搜索:如何使用 memcmp 比较两个 GMP mpz_t?

动机:我想使用bsearch(二进制搜索)快速搜索 121 位非负整数的排序列表(它们都有 121 位,尽管它们可能有前导零)。这些整数太大而无法存储为单独int的 s,依此类推,所以我打算制作它们mpz_t(使用GMP)。

翻阅手册,GMP 没有bsearch等效项(尽管,如果我错了,请纠正我),这导致我:

问题:我们可以使用memcmp或类似的东西来比较两个具有相同位数的非负整数存储为mpz_t?如果是这样,正确的语法是什么?

如果这是可能的,搜索应该是非常有效的。

我也愿意接受有关以下方面的替代建议:(a)用于存储这些 121 位整数的数据结构,允许在 C++ 中进行快速搜索,(b)用于搜索不使用的整数的方法memcmp

0 投票
1 回答
869 浏览

c - C bsearch 导致分段错误

我有函数调用 userInteractive(*anangramInfo),它传入结构 anangramInfo 的指针,这个结构包含指向实际字谜的指针“anagramPointer”。所以,我从用户那里得到了标准输入。然后使用它作为 bsearch 的键来查找指针,这些字谜具有相同的 anangram.sorted。然后将指针向左移动,直到键与 anagram.sorted 不匹配,然后移回右侧 printf anagram.word,直到 anagram.sorted 不匹配。但这导致了我的分割问题

0 投票
0 回答
135 浏览

c - Bsearch在C中匹配一系列元素,而不是特定元素

我正在尝试对包含十六进制地址的结构数组进行二进制搜索。每个结构都有几个地址,当我给出输入地址时,我想找到具有跨越我输入地址的范围的结构,而不仅仅是与结构开始的地址完全匹配。

我可以用 bsearch 做到这一点吗?我很难找到适用于此的比较功能。

ptrSymbolArray 包含原始数据。这个函数看起来有点毫无意义,因为为了让这个更简单,我已经消除了我在 ptrSymbolArray 的数据上使用的条件。在这里,我包括来自原始数据的所有内容。

我实际处理的数据是在 ac 文件中存储函数名称、地址等的文件。我想输入一个地址来知道我在哪个函数中。为此,我需要能够匹配结构内的地址,而不仅仅是结构开头的地址。