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

python – 如何有效地在大型排序数组中找到最接近另一个值X的值,第1张

概述对于排序列表,如何找到接近给定数字的最小数字? 例如, mysortedList = [37, 72, 235, 645, 715, 767, 847, 905, 908, 960] 如何快速找到小于或等于700的最大元素? (如果我有1000万个元素,那么线性搜索会很慢).在这个例子中,答案是645. 您可以使用 bisect模块: import bisectdata = [37, 72, 对于排序列表,如何找到接近给定数字的最小数字?

例如,

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

如何快速找到小于或等于700的最大元素? (如果我有1000万个元素,那么线性搜索会很慢).在这个例子中,答案是645.

解决方法 您可以使用 bisect模块:

import bisectdata = [37,960]location = bisect.bisect_left(data,700)result = data[location - 1]

这是标准库中的一个模块,它将使用binary search来查找所需的结果.根据您需要的确切值,您也可以使用bisect_right而不是bisect_left.

这比迭代列表更快,因为二进制搜索算法可以跳过不包含答案的部分数据.这使得它非常适合在已知数据被排序时找到最接近的数字.

总结

以上是内存溢出为你收集整理的python – 如何有效地在大型排序数组中找到最接近另一个值X的值全部内容,希望文章能够帮你解决python – 如何有效地在大型排序数组中找到最接近另一个值X的值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存