问题标签 [bisect]

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 回答
289 浏览

git - 我可以在我的存储库的一部分上使用 git bisect 吗?

我有一个包含多个子项目且没有子树或子模块的存储库。我现在有一个关于项目 C 中需要修复的新功能的错误。C 依赖于项目 A 和 B。

为了使该功能正常工作,我需要最新版本的 Project A。

在项目 B 的某个地方,引入了该错误。所以我的问题是:

我可以运行 git bisect 并告诉它只对项目 B 的源代码树进行操作,同时将 A 和 C 保持在最新版本吗?

0 投票
2 回答
389 浏览

git - 如何在 TortoiseGit 中完成“git bisect skip”?

TortoiseGit 有一个用于运行 Git Bisect 的 GUI。

然而,在 bisect 会话期间,上下文菜单仅提供“Bisect good”、“Bisect bad”和“Bisect reset”。

有没有办法在没有使用命令行开销的情况下进行“Bisect skip”?

0 投票
1 回答
348 浏览

git - 平分找到_fixed_错误的提交

'git bisect' 的正常用例是将引用的尖端声明为 'bad' 状态,并在历史记录中搜索最新的 'good' 状态。在搜索引入错误的提交时,这是有道理的。

但是,有时会在较旧的代码中发现错误,并在最新的提交中修复,问题是:哪个提交修复了这个错误?可以使用git bisect“好”和“坏”两个词的相反含义,即认为已修复的错误是“坏”状态,而错误是“好”状态。但这有点令人困惑 - 从“好”状态开始平分并搜索“坏”状态可能更清楚。但 git 似乎不喜欢这种方法:

处理这种情况有什么好的方法?

0 投票
1 回答
304 浏览

sorting - (python)在python中实现C insort

所以我使用 insort from bisect 将字符串插入到排序列表中。如果我使用内置的,它会更快。**更快我的意思是,平均快两倍(1 毫秒对 2 毫秒在 10,000 字列表上)。我在比我下面的列表更大的列表上运行了 unix cmd:

我认为它与C有关,但我不明白如何或为什么。我想让我的速度一样快,但不使用内置的。

这里直接来自 bisect 源代码:

平分源代码

这是我认为使它与众不同的部分:

这是输入列表:

一些使其工作的代码:

所以我关心的是在不使用模块的情况下在 python 中实现基于 C 的排序。我怎样才能做到这一点?

0 投票
0 回答
722 浏览

python - python bisect 在浮点数组上

我想知道如何在浮点数组上使用 bisect 或任何其他二进制搜索方法。因此,例如让我们说我有一个浮点数组,例如

我想找到应该插入另一个数字的位置(例如,如果我输入 22.3,则函数的输出应该是 2)。我尝试过bisect(list_floats,22.3)认为它会返回 22.2 或 33.3,但它似乎将所有内容都舍入为整数。难道我做错了什么?任何人都可以提出解决这个问题的方法吗?干杯!

0 投票
1 回答
110 浏览

python - Sqlite 升序似乎不适用于 bisect

我正在使用 bisect 模块来搜索 sha256 哈希并将其插入到列表中。

我有大约 8,000,000 个要搜索和添加的项目,它们存储在 sqlite 数据库中,我想将它们读入列表中,以便更快地搜索它们。

我遇到的问题是使用 bisect 将项目插入列表以找到正确的插入点非常慢。完成所有 8,000,000 个项目大约需要 700 秒。

在 sqlite 数据库中按升序创建索引只需要大约 90 秒,然后将这些按顺序插入到列表中大约需要 60 秒。

问题是当我这样做时,对某些项目的平分搜索失败,但如果我按顺序搜索项目以查找哈希,它实际上就在那里。

所以看起来数据库提供的顺序与使用 bisect 获取索引位置时提供的顺序不太一样。

任何想法为什么会这样?在依赖 bisect 之前能够对列表进行预排序会非常有用。

更新....根据评论,我应该解释一下我有一个行为类似于列表的自定义类,它将散列打包在一个字节数组中以节省内存。这是我的课

谢谢

院长

0 投票
2 回答
2484 浏览

python - Python:两个列表之间的快速映射和查找

我目前正在开发一个高性能 python 2.7 项目,该项目使用大小为一万个元素的列表。显然,每个操作都必须尽可能快地执行。

所以,我有两个列表:一个是唯一任意数字的列表,我们称它为 A,另一个是线性列表,从 1 开始,长度与第一个列表相同,命名为 B,表示索引在 A 中(从 1 开始)

类似枚举的东西,从 1 开始。

例如:

如果我有 B 的一个元素(称为 e_B)并想要 A 中的相应元素,我可以简单地做correspond_e_A = A[e_B - 1]. 没问题。

但是现在我有一个巨大的随机、非唯一整数列表,我想知道 A 中的整数的索引,以及 B 中的相应元素是什么。

我想我对第一个问题有一个合理的解决方案:

这种方法的优点是不需要 map() 单个操作,numpy 的 in1d 只返回一个类似 [True, True, False, True, ...] 的列表。使用 nonzero() 我可以获得 A 中存在的 random_list 中元素的索引。我认为完美。

但是对于第二个问题,我很困惑。我试过类似的东西:

这正确地给了我索引,但它不是最优的,因为首先我需要一个 map(),其次我需要一个 lambda,最后 numpy.where() 在找到项目后不会停止(记住,A 只有唯一元素),这意味着它可以与像我这样的巨大数据集进行可怕的扩展。

我看了一下 bisect,但似乎 bisect 仅适用于单个请求,而不适用于列表,这意味着我仍然必须使用 map() 并按元素构建我的列表(这很慢,不是吗?)

由于我对 Python 很陌生,我希望这里的任何人都可能有一个想法?也许我还不知道的图书馆?

0 投票
1 回答
25610 浏览

git - 如何停止 git bisect?

不久前我尝试了 git bisect ,它对我有很好的帮助,但显然我没有阻止它。当我做 git status 我仍然得到:

我真的不想重置到任何地方,我只想停止一分为二。这实际上只是摆脱此消息的问题。

0 投票
2 回答
64 浏览

python - 将包含多值条目的列表一分为二?关于完成这项任务的建议

我真的需要一些关于使用什么数据结构和函数来解决我正在尝试执行的任务的建议。我只是不确定这里的最佳方法。

问题/任务:我有一个染色体开始和结束位置的列表。我试图找出将这些数据推送到元组列表(?)或类似的东西的最佳方法,然后在给定 start_end 范围值的情况下将这些坐标平分。我以前使用过 bisect,但仅适用于包含单个值条目的列表所以只是不确定进行多值比较的最佳方法是什么。

例如,如果我有以下基因,

我想用与正常开始和结束不匹配的开始和结束位置来查询这个列表以返回匹配的基因;

我试图通过自己的方式,并制作了一些可笑的丑陋复杂的代码,但我知道必须有一种简单/合乎逻辑的方法来做到这一点,我正在努力提出正确的问题文档/论坛搜索明智。

任何有用的建议将不胜感激。

谢谢

0 投票
1 回答
3786 浏览

python - Python 3.4 - 无法导入模块

我想使用 bisect 模块,但是当我尝试时出现此错误import bisect

当我尝试时出现这个错误from bisect import bisect_left

我正在尝试使用 python 文档中的这个函数:

我究竟做错了什么?