折半查找法快还是顺序查找快?

如题

不能笼统的说那个算法一定就好,算法分析要看条件和模型。
折半算法要求待查区域数据是已经排好序的,但是顺序查找没这个要求。
算法时间分析要看平均情况、最坏情况、最好情况的。最好情况两者时间一样,因为都是比较方法查找,都假定第一次比较就找到。最坏情况,折半查找更优为log n次比较,而顺序查找为n次比较。平均情况下(所有待查元素查找概率相当),一般是折半查找由于顺序查找(O(log n) < O(n))。
一般数据规模稍大的测试、算法练习题,折半查找表现都很好,常常优于顺序查找,毕竟顺序查找算不上什么高等算法,优化空间很小。
但是,实际的查找操作很复杂,并不是查找数量多了就会趋近于平均情况,而且折半查找又要求有排序,所以仍然需要按照系统需求进行相应的数学分析和实际检测。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-23
各有利弊吧!!!
例如在一个数组中有10个元素。
例1:第一个是要找的元素。
折半查找:先找第六(下标为5)个,再找第三个(下标为2),然后是第二个(下标为1),最后是第一个(下标为0)...
顺序查找:只要找一次就ok了。

例2:第10个是要找的元素。
折半查找:先找第六(下标为5)个,再找第八个(下标为7),然后是第九个(下标为8),最后是第十个(下标为9)...
顺序查找:需要10次。

例3:第三个是要找的元素。
折半查找:先找第六(下标为5)个,再找第三个(下标为2)
顺序查找:需要三次(效率一样)。本回答被提问者和网友采纳
第2个回答  2017-10-23
这个应用的环境不一样的,没有什么可以比较的
折半法必须是有序的数列才可以用
第3个回答  2013-01-30
要看查找的数的位置。如果查找的数在第一个,当然是顺序查找快了
但是就平均查找时间复杂度来看,应属折半查找好。追问

如果我知道是哪个位置,我直接会定位到这个位置取数。。。。

第4个回答  2013-01-31
因为: 折半查找时间复杂度为O(log(n)),顺序查找为O(n).(具体导出自己找书)所以折半法优于顺序查找。
相似回答