1.  
  2. 主页
  3.  / 
  4. 文档
  5.  / 
  6. 二分法
  7.  / 
  8. 二分法算法

二分法算法

[一维数组,折半查找]
假如有一组数为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)。因为a[mid]>x,故应在前半段中查找。
2.令新的end=mid-1=2,而front=0不变,则新的mid=1。此时x>a[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。

去年今日运营文章

  1. 2022:  运营人必须要懂的9大运营模型,面试、沙龙、写工作总结都用得到(0)
  2. 2022:  2022抖音年轻人观察报告(0)
  3. 2022:  职场:解决问题七步法(0)
  4. 2022:  斜杠青年副业月入过万,别搞笑了(0)
  5. 2021:  小红书怎么推广?3大关键赋能产品价值,助力品牌增长!(0)
标签
这篇文章对您有用吗?

发表回复

登录后才能评论