如何在大型排序数组中高效找到最接近另一个值X的值

西鲁鲁鲁

对于排序列表,如何找到与给定数字接近的最小数字?

例如,

mysortedList = [37, 72, 235, 645, 715, 767, 847, 905, 908, 960]

我如何才能找到这700小于或等于最大的元素迅速(如果我有1000万个元素,那么线性搜索将很慢)。在此的示例答案是645。

西蒙·维塞尔

您可以使用以下bisect模块:

import bisect

data = [37, 72, 235, 645, 715, 767, 847, 905, 908, 960]

location = bisect.bisect_left(data, 700)

result = data[location - 1]

这是标准库中的一个模块,它将使用二进制搜索来找到所需的结果。根据您需要的确切值,您也可以使用bisect_right代替bisect_left

这比遍历列表更快,因为二进制搜索算法可以跳过不包含答案的部分数据。当已知要对数据进行排序时,这非常适合查找最接近的数字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何找到日期最接近另一个日期的值

如何在Pandas Dataframe中获取最接近另一个值的值

如何找到一个向量中与另一个向量最接近(最近)的值?

向量化为另一个数组中的每个元素在数组中找到最接近的值

给定R中的条件,找到最接近另一个值的位置

在排序的数组列表中找到2个最接近的上一个值和2个最接近的下一个值

如何从列表中选择值最接近 Ansible 中的另一个值的项目

如何根据最接近的匹配从另一个有效地替换大型数据框(100k +行)中的值?

将值匹配到R中另一个数组中的最接近值

如何找到接近另一个值的多个值?

用另一个数组中最接近的值替换numpy数组中的元素

如何在一组点中找到最接近另一个点的点?

从 .csv 中获取最接近另一个数据帧中的值的值

如何在R中的向量中找到一个值与其最接近的值之间的差?

如何找到与另一个数字最接近的数字,即2的幂?

如何在pinescript数组中找到最接近的值?

确定与另一个日期值Teradata最接近的日期

提取与最接近另一个日期的日期关联的值

查找时间上最接近另一个的值

UPDATE列数据具有与Oracle上另一个表最接近的值

在另一个表中查找与值最接近的匹配

查找一个数组与另一个数组中所有值的最接近索引-Python / NumPy

如何根据另一个数组的值对数组的值进行排序

基于数组中的一个键值如何找到另一个键的值?

如何找到一个小于且最接近数组X的数字?

如何在左侧找到最接近的值

如何在一个数组中找到最大值,对应于另一个数组中的唯一值/点?

如何在PHP中按另一个数组中的值对数组排序

如何在Matlab中高效地为一个对象列表分配一个值?