折半查找效率浅析

来源 :博览群书·教育 | 被引量 : 0次 | 上传用户:wuhanchi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:折半查找法是效率较高的一种查找方法,它要求查找表是顺序存储的有序表。折半查找法特别适用于那种一经建立就很少改动、而又经常需要查找的线性表。 本文以12个记录为例,分析了折半查找法过程中判定树的形成,并详细地研究了查找成功时和查找失败时的ASL。
  关键词:折半查找法;判定树;ASL
  The Analysis of The Efficiency of The Binary Search Method
  Fang Rui Ying Wu Jun Fang
  Wanfang College of Science & Technology HPU
  Abstract: The binary search method is an efficient search method and requires that the lookup table is an ordered list of sequential storage. The binary search method is particularly applicable to that by establishing a few changes and often need to find the linear form. This article takes 12 records as an example,analyzes the formation of the decision tree in the process of the binary search method and studies ASL of the success of the search and the failure of the search in detail.
  Key Words: the binary search method; the decision tree; ASL
  查找,也可称检索,是在大量的数据元素中找到某个特定的数据元素而进行的工作。查找是一种操作,查找的目的在于从一些数据中寻找一个特定的值,这看似简单的工作之所以产生了形形色色的各种方法,无非都是为了追求更高的效率与更方便的操作。 在范围较小的时候,无论采取什么方法查找,所花费的时间都相差无几,在这种情况下,算法上简单易行,且对存储格式要求较低的静态查找无疑就可以满足我们的要求。静态查找是指对查找表只做查询某个“特定的”数据元素是否在查找表中或检索某个“特定的”数据元素的各种属性的“查找”操作,它可以有不同的表示方法,在不同的表示方法中,实现查找操作的方法也不同。对静态查找表可以用顺序表或线性链表进行表示,也可组织成有序的顺序表,或者是索引顺序表,相应的查找方法可采用顺序查找方法、折半查找方法和索引顺序查找的方法。讨论有关静态查找表的折半查找,并计算和分析查找成功时和查找失败时的平均查找长度。如果数列原来是有序的, 则最常用的方法是折半查找法, 也称为二分法查找。
  一、折半查找
  折半查找法的基本思想是(设R[low..high]是当前的查找区间):首先确定该区间的中点位置;然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找,具体方法如下:
  若r[mid].key>K,则由表的有序性可知r[mid..n].key均大于K,因此若表中存在关键字等于K的结点,则该结点必定是在位置mid左边的子表r[1..mid-1]中,故新的查找区间是左子表r[1..mid-1]。
  若r[mid].key  因此,从初始的查找区间r[1..n]开始,每经过一次与当前查找区间的中点位置上的结点关键字的比较,就可确定查找是否成功,失败则当前的查找区间就缩小一半。这一过程重复直至找到关键字为K的结点,或者直至当前的查找区间为空(即查找失败)时为止。
  假设有已经按照从小到大的顺序排列好的十二个整数a1~a12,要查找的数是X,其基本思想是: 设查找数据的范围下限为low=1,上限为high=12,求中点mid=(low+high)/2,用X与中点元素mid比较,若X等于mid,即找到,停止查找;否则,若X大于mid,替换下限low=mid+1,到下半段继续查找;若X小于mid,换上限high=mid-1,到上半段继续查找;如此重复前面的过程直到找到或者low>high为止。如果low>high,说明没有此数。
  二、折半查找判定树
  判定树的形态只与表结点个数n相关,而与输入实例中r[1..n].key的取值无关。从折半查找法的过程看,以有序表的中间记录作为比较对象,并以中间记录将表分割为两个子表,对子表继续上述操作。所以,对表中每个记录的查找过程,可用二叉树来描述,二叉树中的每个结点对应有序表中的一个记录,结点中的值为该表再表中的位置,通常称这个描述折半查找过程的二叉树为折半查找判定树。
  长度为n的折半查找判定树的构造方法为:当n=0时,折半查找判定树为空;当n>0时,折半查找判定树的跟结点是有序表中序号为mid=(n+1)/2的记录,根结点的左子树是与有序表r~r[mid-1]相对应的折半查找判定树,根结点的右子树是与 r[mid+1]~r[n]相对应的折半查找判定树。
  例如,长度为12的折半查找判定树的具体生成过程为:在长度为12的有序表中进行折半查找,不论查找哪个记录,都必须先和中间记录进行比较,而中间记录的序号为(1+12)/2=6(注意是整除即向下取整),即判定树的根结点是6,如图1(a)所示;考虑判定树的左子树,即将查找区间调整到左半区,此时的查找区间是[1,5],也就是说,左分支上为根结点的值减1,代表查找区间的高端high,此时,根结点的左孩子是(1+5)/2=3,如图1(b)所示;考虑判定树的右子树,即将查找区间调整到右半区,此的查找区间是[7,12],也就是说,右分支上为根结点的值加1,代表查找区间的高端low,此时,根结点的右孩子是(7+12)/2=9,如图1(c)所示;重复第二步第三步,依次确定每个结点的左右孩子,如图1(d)所示。   这个判定树与霍夫曼树的区别在于折半查找的判定树的内节点也是待查找元素,而叶子节点是区间。因此折半查找与BST更相似,只不过折半查找的判定树是固定的,不是动态结构。另一个区别在于折半查找是以元素的序号来区分的,而BST的元素序号与其位置没有关系,BST元素的键值决定了其位置,而且键值没有二分关系。
  三、折半查找法效率分析
  先看{1,16,21,35,46,58,62,76,80,98,120,180}12个元素的查找表的具体例子。 从上述查找过程可知:找到第⑥个元素仅需比较1次;找到第③和第⑨个元素需比较2次;找到第①、④、⑦和⑩个元素需比较3次;找到第②、⑤、⑧…需比较4次。这个查找过程可用图1(d)所示的二叉树来描述。树中每个结点表示表中一个记录,结点中的值为该记录在表中的位置,通常称这个描述查找过程的二叉树为判定树,从判定树上可见,查找35的过程恰好是走了一条从根到结点④的路径,和给定值进行比较的关键字个数为该路径上的结点数或结点④在判定树上的层次数。因此,折半查找法在成功时进行比较的关键字个数最多不超过树的深度,依此类推,可得等概率情况下查找成功时的ASL为
  接下来讨论失败的情况, 在折半查找判定树中,查找失败时的比较次数即是查找相应外结点时与内结点的比较次数。如果在图1(d)所示的判定树中所有结点的空指针域上加一个指向一个方形结点的指针,形成如图1(e)所示,并且称这些方形结点为判定树的外部结点(与之相对,称那些圆形结点为判定树的内部结点),那么折半查找时查找失败的过程就是走了一条从根结点到外部结点的路径,和给定值进行比较的关键字个数等于该路径上内部结点个数。例如,查找25的过程即为走了一条从根到外部结点的路径,比较3次失败;查找180的过程即为走了一条从根到外部结点的路径,比较4次失败。这样的外部结点共有13个,因此可得等概率情况下查找失败时的ASL为
  折半查找判定树是一棵二叉排序树,折半查找判定树中的内结点都是查找成功的情况,所有外部结点是查找失败的情况。
  四、结语
  虽然折半查找法的效率高,但是要将表按关键字排序。而排序本身是一种很费时的运算。既使采用高效率的排序方法也要花费O(nlgn)的时间。折半查找只适用顺序存储结构,为保持表的有序性,在顺序结构里插入和删除都必须移动大量的结点。因此,折半查找特别适用于那种一经建立就很少改动、而又经常需要查找的线性表。 本文以12个记录为例,分析了折半查找法过程中形成的判定树,并详细地分析了查找成功时和查找失败时的ASL。
  参考文献:
  [1] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,1998.
  [2] 方铖.一种改进的折半查找算法[J]. 现代电子技术. 2008(05).
  [3] 魏少涵.折半查找算法在最优化问题中的应用[J]. 计算机时代. 2012(09).
  [4] 时百胜.基于概念的折半查找算法[J]. 计算机科学. 2009(06).
  [5] 邹国霞,唐建清.索引折半查找算法的研究与设计[J]. 计算机时代. 2009(12) .
  [6] 孙义欣.用C#实现折半查找算法的可视化演示[J]. 电脑知识与技术. 2011(29).
  [7] 柳海燕.基于C#的折半查找算法动态演示程序[J]. 电脑知识与技术. 2011(23).
  [8] 王钢,徐红主编.数据结构[M]. 清华大学出版社, 2005.
其他文献
摘 要:随着社会的进步,科技的发展,办公的环境得以不断地改善,办公的设备也在不断地更新。办公自动化是基于电子计算机技术、信息处理技术、通讯技术之上的综合应用技术。在档案管理方面,办公自动化已经全面取代传统的人工管理档案的方式。办公自动化的应用既顺应了时代发展的要求,也促进档案管理工作的高效、快速、准确开展。  关键词:办公自动化;档案管理;优点;要求  随着我国信息化的不断加强,档案管理已从过去管
期刊
摘 要:网络翻译批评作为一种新的读者批评形式,对于促进翻译研究、引发翻译批评热潮、提高翻译质量有积极的推动作用。然而,由于网络的特点,网络翻译批评也有一定的局限性。  关键词:网络翻译  一、引言  翻译是一项极其古老的活动。随着翻译的发展,人们对翻译的思考不断加深。在中国,早在《诗经》和《礼记》中就曾讲究翻译的信达雅原则;而在西方,甚至有“欧洲文明源于翻译”这样的说法。的确,社会的发展、人类的进
期刊
在国家文物局、省、市文物局的大力支持下,在省、市、区各级领导倾情关心下,在市文广新局有力领导下,在各兄弟文博单位的无私帮助和社会各界的持续关注下,经过一年多施工建设,“成都永陵(王建墓)安防监测及环境综合整治工程”和“成都永陵博物馆陈列展览及配套设施建设工程”竣工。2015年12月18日,成都永陵博物馆文物保护区将恢复对外开放,新建综合馆同时对外开放,常设“前后蜀历史文化陈列”也将对外试展。  成
期刊
摘 要:对于模具制造技术来讲,有许多加工方式,其中最为重要的要数电加工以及金属切削加工方式。随着我国的社会经济的不断发展,模具制造业也得到了广泛的发展,但是在技术发展上却出现了参差不齐的现象,一些企业已经进入到了计算机发展阶段中,同时还有一些企业则依然停留在手工机械化阶段。就目前来说,最主要的就是数字控制阶段,基于此本文针对模具设计与加工技术进行了简要阐述,并提出几点个人看法,仅供参考。在磨具开发
期刊
摘 要:文章基于DTV的定位系统中关于总体结构、软件接收机和工作流程等方面的描述,对数字电视广播信号无线定位的原理、方案的实现作简要分析。  关键词:数字电视;无线定位  一、数字电视信号无线定位的概念  无线电定位可理解为:已知的空间坐标和时间基准线的多个无线电发射源的辐射信号同时被接收,就可以确定接收端的用户的地理位置,这里所讲的位置即为经度、纬度和海拔高度。因为超大规模集成电路工艺的进步,D
期刊
摘 要:文章主要以研究人文精神在初中政治教育当中的应用为主要目标,通过对于其在初中政治当中的发展现状来分析其对于政治教育的具体意义。笔者将依据现状来深入剖析在初中政治教育当中对于人文精神的应用,期待能够为初中政治教育的改革作出重要的贡献,帮助去更好的理解人文精神培养的意义。  关键词:人文精神;初中;政治教育;应用  随着教育体制的不断改革,对于初中教育当中的政治教育也进行了细致的改革划分,现实意
期刊
摘 要:心力衰竭(简称心衰,是由多种器质性心脏病或非器质性心脏病导致心室充盈或射血功能受损的临床综合征。提高慢性心衰的临床疗效是世纪医学界面临的重大课题,而中医药是否有疗效是核心问题,寻找合适替代指标成为中西医结合评价研究的关键。课题组前期研究成果——疾病特异性量表《慢性心衰中西医结合生存质量量表》,具有鲜明的中医药特色,能够为疗效评价提供了切实可靠的工具。  关键词:慢性心衰;中西医疗效;评价指
期刊
摘 要:环境设计中的色彩运用是设计者人文艺术的情感表达,秉持“以人为本”的色彩设计理念才能中和不同群体的审美偏差,经过不断地比对、衬托和调和,从而获得艺术审美愉悦。本文重点讨论了环境设计中色彩运用的特性和功能,并结合具体实例初步阐释了色彩的艺术表现方式。  关键词:环境设计;色彩;语言  随着现代色彩学的发展,人们对色彩的认识不断深入,对色彩功能的了解日益加深,使色彩在环境设计中处于举足轻重的地位
期刊
摘 要:共同饮酒人相约饮酒为情谊行为,法律不宜过多干涉。但当共同饮酒行为导致同饮者陷入醉酒危险时,同饮者之间就基于先前的饮酒行为产生合理注意义务,主要包括提醒、劝阻义务,照顾、保护、救助义务、妥善安置义务等。基于对生命健康权的保护,同饮者亦不得灌酒、恶意劝酒。同饮者违反此注意义务,则需依过错承担侵权责任。  关键词:共同饮酒;情谊行为;注意义务  一、问题的提出  相约饮酒是一种非常普遍的现象,因
期刊
摘 要:随着我国工程建设领域的发展壮大,建筑工程的质量问题逐渐受到各界的关注,而建筑工程的质量管理也就成为了当前国内外都在研究的问题。施工阶段质量管理的有效性, 不仅关系到整个工程项目的最终质量, 还关系到整个工程项目的顺利完成和成本控制。[1]因此必须重视和加强施工阶段质量管理工作, 本文作者分析了建筑工程施工中质量管理的目标及影响建筑工程施工质量的因素,提出了施工过程质量管理的范围及重点, 指
期刊