您当前的位置:首页 > 美文欣赏 > 内容

二分法查找的介绍?二分法是什么意思

若x大于当前位置值则在数列的后半段中继续查找,如果要查找的数不是数列中的数,如果要查找的数不是数列中的数,表示查找不成功,表示查找不成功,不成功当前查找区间缩小一半,二分法查找的算法假如有一组数为3,查找成功返回此位置。

二分法查找的介绍

算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。主要思想是:(设查找的数组区间为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)。

二分法是什么意思

二分法是数学领域术语。

二分法即,对于区间[a,b]上连续不断且f(a)·f(b)《0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。

算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。

基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较,

如果当前位置arr[k]值等于key,则查找成功;

若key小于当前位置值arr[k],则在数列的前半段中查找,arr[low,mid-1];

若key大于当前位置值arr[k],则在数列的后半段中继续查找arr[mid+1,high],

直到找到为止,时间复杂度:O(log(n))。

C++语言中的二分查找法:

基本思想:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。

假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.可设三个变量front,mid,end分别指向数据的上界,中间和下界,mid=(front+end)/2。

1、开始令front=0(指向3),end=7(指向88),则mid=3(指向36)。因为mid》x,故应在前半段中查找。

2、令新的end=mid-1=2,而front=0不变,则新的mid=1。此时x》mid,故确定应在后半段中查找。

3、令新的front=mid+1=2,而end=2不变,则新的mid=2,此时a[mid]=x,查找成功。

如果要查找的数不是数列中的数,例如x=25,当第三次判断时,x》a[mid],按以上规律,令front=mid+1,即front=3,出现front》end的情况,表示查找不成功。

二分法查找的算法

假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.可设三个变量front,mid,end分别指向数据的上界,中间和下界,mid=(front+end)/2.1.开始令front=0(指向3),end=7(指向88),则mid=3(指向36)。因为mid》x,故应在前半段中查找。2.令新的end=mid-1=2,而front=0不变,则新的mid=1。此时x》mid,故确定应在后半段中查找。3.令新的front=mid+1=2,而end=2不变,则新的mid=2,此时a[mid]=x,查找成功。如果要查找的数不是数列中的数,例如x=25,当第三次判断时,x》a[mid],按以上规律,令front=mid+1,即front=3,出现front》end的情况,表示查找不成功。例:在有序的有N个元素的数组中查找用户输进去的数据x。算法如下:1.确定查找范围front=0,end=N-1,计算中项mid=(front+end)/2。2.若a[mid]=x或front》=end,则结束查找;否则,向下继续。3.若a[mid]《x,说明待查找的元素值只可能在比中项元素大的范围内,则把mid+1的值赋给front,并重新计算mid,转去执行步骤2;若a[mid]》x,说明待查找的元素值只可能在比中项元素小的范围内,则把mid-1的值赋给end,并重新计算mid,转去执行步骤2。[一维数组,折半查找]

二分法检索如何进行

二分法检索二分法检索要求线性表结点按关键码值排序且以顺序方式存储。在查找时,首先与表的中间位置上结点的关键值比较,若相等则检索成功;否则根据比较结果确定下一步在表的前半部或后半部中继续进行。二分法检索的效率较高,设线性表有n个元素,则最多的检索次数为大于log2 n 的最小整数,最少的检索次数为1。二分法检索又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组中,首先将给定值key与字典中间位置上元素的关键码比较,如果相等,则检索成功;否则,若key小,则在字典前半部分中继续进行二分法检索,若key大,则在字典后半部分中继续进行二分法检索。这样,经过一次比较就缩小一半的检索区间,如此进行下去,直到检索成功或检索失败。二分法检索是一种效率较高的检索方法,要求字典在顺序表中按关键码排序。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 怎么使用实现超级链接的样式?android activity,intent,service是什么关系

下一篇: 摩羯座男生喜欢一个人的表现(男生喜欢一个人的感觉)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号