顺序搜索

时间:2010-03-06 17:23:02

标签: search sequential

对于顺序搜索,在文件中查找记录所需的平均比较次数是多少?

3 个答案:

答案 0 :(得分:3)

sequential search从文件的开头开始,逐个检查每个元素,直到找到所需的元素。假设您要搜索的记录只存在于文件中一次,并且可能在文件中的任何位置具有相同的概率,则平均比较次数等于文件中记录数的一半。

但是,如果文件中不存在记录,则必须先检查文件中的每条记录,然后再发现。

答案 1 :(得分:1)

对于包含n个项目的列表,最好的情况是当该值等于列表的第一个元素时,在这种情况下只需要进行一次比较。最坏的情况是当值不在列表中时(或者在列表末尾只出现一次),在这种情况下需要进行n次比较。

因此,

Asymptotically,最差情况下的成本和线性搜索的预期成本都是O(n)

答案 2 :(得分:0)

我想补充几点,以前的答案没有指出:

  • 另一方面,我们必须考虑该文件是在一台设备上可用还是分布在多台设备上。如果是T rams,则复杂度为O(T*N/(1+log(T)))

  • 通常,顺序搜索需要O(N) time complexity

  • 当与R-Tree等数据结构结合使用时,如果文件中包含记录,则可以为O(N/(log(log(N))))提供最佳的案例时间复杂度。

  • 这取决于文件的结构/格式,如果数据字段在哈希映射中可用,则顺序搜索是积压的。