对小型未排序数组进行成本最低的相等搜索
Least expensive equality search for small unsorted arrays
就
执行时间而言,在大约 4 到 16 个元素的小数组中搜索与您正在C++搜索的元素相等的元素的最有效方法是什么? 在本例中,要搜索的元素是指针,因此相对较小。
(我的目的是防止点云中的点使用已与其共享边的点创建边。 每个点的边缘阵列都很小,但可以有大量的点。 另外,我也很好奇!
最好的办法是使用各种机制分析您的特定应用程序,看看哪个机制性能最佳。
我怀疑鉴于它是未排序的,直接线性搜索最适合您。如果您能够对数组进行一次预排序,并且它很少更新或从不更新,则可以预先排序,然后使用二进制搜索。
尝试线性搜索;尝试从一个或多个二进制切碎阶段开始。前者平均涉及更多的比较;后者具有更大的缓存未命中和分支错误预测的范围,并且要求对数组进行预排序。
只有通过测量,你才能分辨出哪个更快,然后只能在你测量的平台上。
如果您必须多次执行此搜索,并且数组不经常/根本不更改,请对其进行排序,然后使用二进制搜索。
相关文章:
- 有根的二进制搜索树.保留与其父级的链接
- 在C++中搜索嵌套多映射值
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 二进制搜索树叶数问题
- 为什么二进制搜索在我的测试中不起作用
- 正在尝试重载二进制搜索树分配运算符
- c++binary_search函数排序数组(流行名称搜索)出现问题
- 向量上的线性搜索
- 如何在动态数组上使用搜索函数
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- cmake:添加要搜索头文件的目录
- 使用C++创建特殊的二叉搜索树
- 在C++的字符串中搜索和删除某些字符
- std::unordered_map 搜索算法是如何实现的?
- 使用不变量来确定二分搜索中的边界条件
- 二叉搜索如何比线性搜索更快?
- 按边长度递归搜索图中所有可行路径
- QStackWidget - 按名称搜索
- 对小型未排序数组进行成本最低的相等搜索
- 现有的数据库(最好是嵌入式数据库)是否支持大型小型多维搜索?