如果数组未排序,可以使用哪种搜索技术?

时间:2012-07-18 00:25:55

标签: algorithm search binary-search

二进制搜索在O(log n)中执行搜索。但是,只有在对数组进行排序时才能使用它。

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

3 个答案:

答案 0 :(得分:6)

如果您只进行了一些搜索,那么基本的线性搜索就是您可以做的最好的。

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

答案 1 :(得分:0)

您可以进行线性搜索。 但线性搜索的问题在于它存在性能问题,需要花费大量时间。 所以我建议尽可能对数组进行排序,然后使用二进制搜索。 如果你想要更好的延迟,那么尝试插值搜索,这是典型二进制搜索的一个优化版本。

答案 2 :(得分:0)

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