普通思路二分查找,先拿b去比a10,缩小一半范围,依此类推,网上代码很多。
邪道一点,直接把20个数二分查找的过程全用if else写出来,省掉读取数组a的步骤。但我怀疑python里这么写效果一般。
如果数组a分布比较均匀,或许可以先对a数组做个多项式拟合,阶数不用太高,y轴就是index。然后带入b,求个近似,之后比较邻近a值确认精确位置
【 在 qingchong 的大作中提到: 】
: 有个数组a=[1000,900,850,700,……,200],20个数,从大到小排列。
: 有个numpy数组b=[925.3,856.1,1002.5,……],有10万个数,随机排列。
: 现在要快速找到b数组中每个数在a数组中的区间位置,即遍历b数组元素,返回每个b元素第一次大于某个a元素在a中的位置。
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 115.193.171.*