问题标签 [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 回答
270 浏览

c - 使用 bsearch c 在字符串数组中进行二进制搜索

所以我试图在一个名为 conj_str 的字符串数组中进行二进制搜索,要做的是我必须对其进行排序,而我试图使用 qsort 的问题是比较函数不起作用并且它没有排序任何东西。

程序:

0 投票
2 回答
182 浏览

c - 使用 bsearch 在结构数组中查找元素

所以我有一个名为 conj_gms 的结构数组,我想找到一个特定jogonome.

结构:

例如,我有 jogo 和

在 conj_jogs 的索引 1 处,如果我搜索字符串 UCL,在使用 bsearch 之后,我想要具有该名称的 jogo 的 id,即 1。

所以为此我创建了一个函数来创建一个 jogo 并将它们归因于 conj_jgs 中的位置。

问题是当我使用 bsearch 我得到一个分段错误

程序:

0 投票
1 回答
62 浏览

ruby - bsearch_index 的奇怪行为

在上面的代码中,我得到的响应为零。如果我将 j 与 3 或 5 进行比较,它会起作用。为什么 bsearch_index 不考虑第一个元素?

0 投票
2 回答
81 浏览

ruby - 如果 0 索引值是满足条件的唯一值,则 Ruby 中的 Array#bsearch 返回 nil

我在下面提供了测试用例,这只是一个激发我好奇心的问题。

ruby 文档Array#bsearch说:

“此方法返回第 i 个元素。如果 i 等于 ary.size,则返回 nil。”

这个解释还没有在我的脑海中点击。有人可以更深入地解释一下吗?

0 投票
3 回答
120 浏览

c - 可以对数组进行排序以使 bsearch 工作吗?

这个链接

因为这个函数可能被优化为使用非线性搜索算法(可能是二分搜索),所以使用比较小于键的元素应该在比较相等的元素之前,而这些应该在比较大的元素之前。使用与比较使用的相同标准排序的任何数组都满足此要求(就像使用 qsort 排序一样)。

  • 在引用的文本中,斜体部分是什么意思?
  • 另外,我可以订购数组后代吗?还是只有上升?
  • 被排序的数组中的元素还能是什么顺序呢?
0 投票
1 回答
43 浏览

c - bsearch 的比较回调函数只需要实现相等吗?

从 cppreference,

为了执行搜索,该函数执行一系列调用以比较 key 作为第一个参数,并将 base 指向的数组元素作为第二个参数。

对于给定的数组int arr[] = {1, 2, 3, 4, 5, 6, 7},搜索6需要将回调函数传递给的元素bsearch。我的int compar (const void* pkey, const void* pelem);函数是否需要能够返回以下三种情况之一:

  • 返回 < 0
  • 返回 > 0
  • 返回 0

还是仅仅为了相等而实现compar函数就足够了(例如,当搜索值等于当前元素时返回 0)?

0 投票
1 回答
64 浏览

c - bsearch 的不同比较函数

cmp func 似乎都可以工作;无法理解在 qsort_cmp 的情况下如何解析 int* 类型的 arg1。据我所知:int* 被传递给 qsort_cmp ,在那里它被更改为 void*,然后在 return 语句中转换为 struct s*。到目前为止没问题,但是演员应该有一个名为 b 的成员,它的演员类型有,但它的实例没有......

0 投票
1 回答
47 浏览

c - 在 C 中努力实现 bsearch

我有一个数组

我试图获取匹配的条目的索引 pseq = (char*)malloc(2);

我现在只是使用一个基本的比较功能,因为我希望以后创建一个特定的

我对 bsearch 的尝试是:

char* q = bsearch(&pseq, m, mlen, sizeof(m[0]), compare);

但是,每个返回都是 NULL。但是compare(pseq, m[5]) = 0对于 pseq = "CC"

0 投票
2 回答
46 浏览

arrays - bsearch 与结构数组

我有一个结构数组,已经使用qsort. 我正在尝试在 struct 中搜索名称,但它总是返回NULL。为什么会发生这种情况的解释是什么?

这是我的代码:

这是我声明的结构:

0 投票
1 回答
113 浏览

arrays - (C) 使用 bsearch 在 struct 数组中按名称查找 struct

我正在尝试实现函数 (1) 以在结构数组中按名称查找特定产品。p_array 是包含 n 个产品的结构数组,search_key 是指向具有搜索结构名称的字符串的指针 cmp 是指向我已实现的另一个函数 (2) 的指针。

我有以下问题:

  1. 我想不出办法找出 p_array 的长度
  2. 启动程序导致分段错误,我不知道为什么

我的主要功能是:

想要的输出是