对小型未排序数组进行成本最低的相等搜索

Least expensive equality search for small unsorted arrays

本文关键字:搜索 小型 排序 数组      更新时间:2023-10-16

执行时间而言,在大约 4 到 16 个元素的小数组中搜索与您正在C++搜索的元素相等的元素的最有效方法是什么? 在本例中,要搜索的元素是指针,因此相对较小。

(我的目的是防止点云中的点使用已与其共享边的点创建边。 每个点的边缘阵列都很小,但可以有大量的点。 另外,我也很好奇!

最好的办法是使用各种机制分析您的特定应用程序,看看哪个机制性能最佳。

我怀疑鉴于它是未排序的,直接线性搜索最适合您。如果您能够对数组进行一次预排序,并且它很少更新或从不更新,则可以预先排序,然后使用二进制搜索。

尝试线性搜索;尝试从一个或多个二进制切碎阶段开始。前者平均涉及更多的比较;后者具有更大的缓存未命中和分支错误预测的范围,并且要求对数组进行预排序。

只有通过测量,你

才能分辨出哪个更快,然后只能在你测量的平台上。

如果您必须多次执行此搜索,并且数组不经常/根本不更改,请对其进行排序,然后使用二进制搜索。