二分搜索在 O(log n) 中执行搜索。但是,它只能在数组已排序时使用。
如果数组未排序,哪种搜索技术最好?
如果您只进行几次搜索,那么基本的线性搜索是您能做的最好的。
如果您要经常搜索,通常最好进行排序,然后使用二分搜索(或者,如果内容的分布相当可预测,则使用插值搜索)。
如果您的数据未排序,您可以使用哈希表在 O(1) 时间内访问您的数据。
您可以进行线性搜索。但是线性搜索的问题是它有性能问题,它需要很多时间。所以我建议尽可能对数组进行排序,然后使用二进制搜索。如果您想要更好的延迟,请尝试插值搜索,这是典型二分搜索的优化版本。