【 在 qingchong 的大作中提到: 】
: 有个数组a=[1000,900,850,700,……,200],20个数,从大到小排列。
: 有个numpy数组b=[925.3,856.1,1002.5,……],有10万个数,随机排列。
: 现在要快速找到b数组中每个数在a数组中的区间位置,即遍历b数组元素,返回每个b元素第一次大于某个a元素在a中的位置。
: ...................
这个追求极致速度肯定是用bucket的桶排序思想
如果a中数字分布比较均匀就很好处理
1、遍历a->最小间距做为桶interval大小
2、遍历a建立索引,key:(cur0-minA)/interval ,value:cur0。这里有个处理,因为你找左边界,所以循环过程中中间的索引(cur0-minA)/interval~(cur1-minA)/interval这些index都放cur0
查询:索引中get(valueB-minA)
--
FROM 43.243.137.*