网站大量收购闲置独家精品文档,联系QQ:2885784924

毕业论文—-学年论文几种查找算法的比较与总结.doc

毕业论文—-学年论文几种查找算法的比较与总结.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
毕业论文—-学年论文几种查找算法的比较与总结.doc

学 年 论 文 题 目: 几种查找算法的比较与总结 学 院: 计算机科学与工程 专 业: 计算机科学与技术 班 级: 12级计师1班 学生姓名: 马有华 学 号: 201271030132 指导教师: 曹素珍 摘 要查找是在大量的信息中寻找一个特定的信息元素在计算机应用中查找是常用的基本运算文中介绍四种查找算法.分别是顺序查找、二分查找、二叉排序树查找和哈希找。并用JAVA语言编写了相应程序代码,比较了查找同一个数据的时间复杂度和空间复杂度。 关键词查找算法时间复杂度;空间复杂度 Abstract Searching is a commonly basic operation that can find a number of information in computer applications.In this paper,four tapyes of searching algorithm are introduced.They are squential earch,binary search tree,and bash search.The progarm’s codes based on java are complied. The time complexity and space complexity to look for the same data and compared. Key words: Searching Algorithm;Timecomplexity;Spacecomplexity 目录 1 1 算法概述 1 1.1引言 1 1.2顺序查找 2 1.3二分查找 2 1.3.1二分查找要求 2 1.3.2优缺点 2 1.3.3算法思想 2 1.3.4算法复杂度 3 1.4分块查找 3 1.4.1方法描述 3 1.4.2操作步骤 3 1.5哈希表查找 4 1.5.1基本原理 4 1.5.2函数构造 4 1.5.3冲突处理 4 1.5.4支持运算 4 2 算法实现 7 2.1顺序查找 7 2.1.1方法分类 7 2.2二分查找 8 2.2.1算法要求 8 2.2.2算法复杂度 8 2.2.3代码示例 9 2.2.4递归实现 11 2.3分块查找 16 2.3.1方法描述 16 2.3.2操作步骤 17 2.4哈希表查找 18 2.4.1操作步骤 18 2.4.2解决冲突 19 3 比较与总结 22 3.1分类查找的依据 22 3.2效率比较 22 参考文献 24 1 算法概述 1.1引言 用关键字标识一个数据元素,查找时根据给定的某个值,在表中确定一个关键字的值等于给定值的记录或数据元素。在计算机中进行查找的方法是根据表中的记录的组织结构确定的。顺序查找也称为线形查找,从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。二分查找要求线形表中的结点按关键字值升序或降序排列,用给定值k先与中间结点的关键字比较,中间结点把线形表分成两个子表,若相等则查找成功;若不相等,再根据k与该中间结点关键字的比较结果确定下一步查找哪个子表,这样递归进行,直到查找到或查找结束发现表中没有这样的结点。分块查找也称为索引查找,把线形分成若干块,在每一块中的数据元素的存储顺序是任意的,但要求块与块之间须按关键字值的大小有序排列,还要建立一个按关键字值递增顺序排列的索引表,索引表中的一项对应线形表中的一块,索引项包括两个内容:键域存放相应块的最大关键字;链域存放指向本块第一个结点的指针。分块查找分两步进行,先确定待查找的结点属于哪一块,然后在块内查找结点。哈希表查找是通过对记录的关键字值进行运算,直接求出结点的地址,是关键字到地址的直接转换方法,不用反复比较。假设f包含n个结点,Ri为其中某个结点(1≤i≤n),keyi是其关键字值,在keyi与Ri的地址之间建立某种函数关系,可以通过这个函数把关键字值转换成相应结点的地址,有:addr(Ri)=H(keyi),addr(Ri)为哈希函数。顺序查找过程:从表中的最后一个记录开始,逐个进行记录的关键字与给定值进行比较,若某个记录的关键字与给定值相等,则查找成功,找到所查的记录;反之,若直到第一个记录,其关键字和给定值比较都不相等,则表明表中没有所查的记录,查找失败。算法描述为  int Search(int d,int a[],int n)  {  /*在数组a[]中查找等于D元素,若找到,则函数返回d在数组中的位置,否则为0。其中n为数

文档评论(0)

wordge + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档