data = [
{type: 'point', ...},
{type: 'point', ...},
{type: 'point', ...},
{type: 'point', ...},
{type: 'point', ...},
{type: 'point', ...},
{type: 'line', ...},
{type: 'line', ...},
{type: 'line', ...},
{type: 'line', ...},
{type: 'area', ...},
{type: 'area', ...},
{type: 'area', ...},
{type: 'area', ...},
{type: 'area', ...}
]这个数据集合的特征是,各个数据按照各自的type聚集在一起。并且,type为point的集合一定会在line前面,同理,line的集合一定会在area前面。现在要插入一条新的数据,type为'area',插入到area集合的第一项里,除了顺序查找,有没有别的查找算法能快一点?谢谢
1 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
如果能提前确定type的顺序,用二分法查找应该是最快的
思路就是先取要查找的type在这个序列中的index
然后拿到目标数组最中间的那个对象,取中间那个对象type的index与查找index对比
大于就用数组后半部【小于用前半部】继续进行这个取中间对象匹配
一直二分匹配到找到与查找type一样index的中间对象,用这个对象index向前遍历找到初始位置返回。
数据量很大的情况下应该能增加不少效率,不多的话还是直接findIndex
来得直接
添加回答
举报
0/150
提交
取消