2

二分搜索在 O(log n) 中执行搜索。但是,它只能在数组已排序时使用。

如果数组未排序,哪种搜索技术最好?

4

3 回答 3

6

如果您只进行几次搜索,那么基本的线性搜索是您能做的最好的。

如果您要经常搜索,通常最好进行排序,然后使用二分搜索(或者,如果内容的分布相当可预测,则使用插值搜索)。

于 2012-07-18T00:30:48.410 回答
1

如果您的数据未排序,您可以使用哈希表在 O(1) 时间内访问您的数据。

于 2017-05-04T12:05:12.940 回答
0

您可以进行线性搜索。但是线性搜索的问题是它有性能问题,它需要很多时间。所以我建议尽可能对数组进行排序,然后使用二进制搜索。如果您想要更好的延迟,请尝试插值搜索,这是典型二分搜索的优化版本。

于 2017-05-04T11:11:52.297 回答