这个查找应该用什么算法?

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集合的第一项里,除了顺序查找,有没有别的查找算法能快一点?谢谢


慕哥9229398
浏览 420回答 1
1回答

qq_花开花谢_0

如果能提前确定type的顺序,用二分法查找应该是最快的思路就是先取要查找的type在这个序列中的index然后拿到目标数组最中间的那个对象,取中间那个对象type的index与查找index对比大于就用数组后半部【小于用前半部】继续进行这个取中间对象匹配一直二分匹配到找到与查找type一样index的中间对象,用这个对象index向前遍历找到初始位置返回。数据量很大的情况下应该能增加不少效率,不多的话还是直接findIndex来得直接
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript