对于顺序搜索,在文件中查找记录所需的平均比较次数是多少?
答案 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))))
提供最佳的案例时间复杂度。
这取决于文件的结构/格式,如果数据字段在哈希映射中可用,则顺序搜索是积压的。