二分法查找的介绍
算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。主要思想是:(设查找的数组区间为array[low, high])(1)确定该期间的中间位置K(2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:a.array[k]》T 由数组的有序性可知array[k,k+1,……,high]》T;故新的区间为array[low,……,K-1]b.array[k]《T 类似上面查找区间为array[k+1,……,high]。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半。递归找,即可,时间复杂度:O(log2n)。
使用二分法查找算法的 前提条件是 被查数据必须是自然数对吗
前提是被查数据必须有序(升序或降序)。
算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。
基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较,如果当前位置arr[k]值等于key,则查找成功;若key小于当前位置值arr[k],则在数列的前半段中查找,arr[low,mid-1];-二分法查找
若key大于当前位置值arr[k],则在数列的后半段中继续查找arr[mid+1,high],直到找到为止,时间复杂度:O(log(n))。
扩展资料:
给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
1、确定区间[a,b],验证f(a)·f(b)《0,给定精确度ξ。
2、求区间(a,b)的中点c。
3、计算f(c).
(1) 若f(c)=0,则c就是函数的零点。
(2) 若f(a)·f(c)《0,则令b=c。
(3) 若f(c)·f(b)《0,则令a=c。
(4) 判断是否达到精确度ξ:即若|a-b|《ξ,则得到零点近似值a(或b),否则重复2-4。
参考资料来源:百度百科-二分法