3.7对分查找算法及程序实现.pptxVIP

  • 303
  • 0
  • 约8.3千字
  • 约 30页
  • 2016-12-17 发布于湖北
  • 举报
3.7 对分查找算法及程序实现1.对分查找的概念对分查找又称二分查找,是一种高效的查找方法。对分查找的前提是,被查找的数据序列是有序的(升序或降序)。对分查找的基本思想是在有序的数列中,首先将要查找的数据与有序数列内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则就根据数据的有序性,再确定该数据的范围应该在数列的前半部分还是后半部分;在新确定的缩少范围内,继续按上述方法进行查找,直到找到要查找的数据,即查找成功,如果要查找的数据不存在,即查找不成功。2.对分查找的过程若key为查找键,数组d存放n个已按升序排序的数据。在使用对分查找时,把查找范围[i,j]的中间位置上的数据d(m)与查找键key进行比较,结果必然是如下三种情况之一:(1)若keyd(m),查找键小于中点d(m)处的数据。由数组d中的数据的递增性,可以确定:在(m,j)内不可能存在值为key的数据,必须在新的范围(i,m-1)中继续查找;(2)key=d(m),找到了需要的数据;(3)keyd(m),由与(1)相同的理由,必须在新的范围(m+1,j)中继续查找。这样,除了出现情况(2),在通过一次比较后,新的查找范围将不超过上次查找范围的一半。中间位置数据d(m)的下标m的计算方法:m= (i+j)\2或m=fix((i+j)/2)。以规模为16的递增数组d为例,观察对分查找的过程。要查找的数据key为37

文档评论(0)

1亿VIP精品文档

相关文档