《数据结构》关于查找的报告书.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》大作业报告书 题 目; 查找算法实现与性能分析 完成时间:2012.6.4 学 号: 姓名: 专业班级: 1. 实习任务与目的 任务是:了解查找算法的应用和实现。知道各种算法之间的差别。自己动手编写一个程序。并且能够对各种查找方法的应用达到一定的了解及运用。 目的:通过这次的程序编写认识到自己的数据结构学习的基本的程度,在某种程度上可以给了自己的一个激励。让自己认识到自己的不足,并从中要进行改进。最重要的是能够知道查找的基本应用,及实现的过程。把数据结构应用到实际中。 2. 实习内容及过程 一,顺序查找 主要是在一个顺序存储的线性结构中进行查找数据。这个算法是查找中比较简单的算法。 进行顺序查找时,我们先将所要查找的数据存入一个线性结构中,然后设计一个指针从表尾开始进行查找,从尾到头进行查找,也可以是从表头开始查找。在本次实验中,我选择的是从表头开始查找,然后根据数据来进行判断是否能够查找的到。顺序查找的优点是算法简单,而且适应面广。但是它也有缺点,是它的平均查找长度较大,特别是当数据较大时,查找效率很低。 二,二分查找 二分查找主要是同时在顺序表的两头进行查找,这样子可以节省时间,提高效率。他是先对待查找的数据对顺序表进行划分,再在数据所属的范围内继续划分范围。直到找到数据或者比较完能够比较的数据才结束。二分查找的平均查找长度比顺序查找小,效率也较高。 三,二叉排序树 二叉排序树是一种动态的查找。在查找过程中,他是一种边查找边建树的过程。由于二叉排序树的性质,以根结点把二叉树分为了两个部分,而二叉排序树又是一种递归的思想,所以根据这个,可以对二叉排序树进行递归操作,这样可以减少算法的编写。 在二叉排序树的查找中是比较简单的,运用递归思想就可以了。 二叉排序树的删除有三种情况。 若所删除的结点是叶子结点,那么可以直接删除结点。 若所删除的结点只有左子树或右子树,此时只要令其左子树或右子树直接成为其双亲结点的左子树即可。 若所删除的结点左子树和右子树均不为空,那么有如图的两种方法: 3. 实验结果分析 一,顺序查找 顺序查找中,是在一个顺序表里进行查找。数据存贮时不是按照一定的大小关系排列的。但是他们的存贮地址是相连的。根据这一点可以很容易的找到所要查找的数据。当没有查找到时,偏会输出没有查找到。 二,二分查找 二分查找是在有序的顺序表里进行的查找。它的首要条件便是表中的数据是有序的。因此当我们进行查找时,我们遍在表中从两端向中间查找。这样子便缩小了查找的范围。当所需要查找的数据不存在时,此时的查找次数最多。当所需查找的数据是中间的那个数时,那么只需要查找一次便可以了。 三,二叉排序数 二叉排序数是一种具有递归思想的树结构。它的根结点的数据比左孩子大,比右孩子小。根据这一特性,二叉排序数的查找就可以运用递归的思想进行查找。当输入一个数时,先将它与根结点进行比较,根据大小而选择是在左子树上查找还是在右子树上查找。然后在递归的进行查找即可。当根节点的数值与所需查找的数相等时,那么就可以输出了。此时的查找次数最少。 4. 核心算法流程图 顺序表查找流程图 二分查找 5. 实习总结及体会 实验中体会最深的是在进行查找工作时,最主要的是要将思想弄懂,当你把思想弄懂的时候,那么才能编写出代码,若不然,你就不可能编写出正确的代码。由代码可以反映出你的思想。那么我们最首要的任务就是思想的理解。通过这次实习,我觉得数据结构是一个很神奇的计算。我们可以将我们脑海中的思想转化为语言,让电脑运行。当我们经过努力而使的程序成功运行时,那一种喜悦的心情只有自己能够深刻体会,而不能用言语来表达。经过这次实习,我渐渐喜欢上数据结构了,可能这样讲别人会觉得这很奇怪,但是只有真正做到自己动手实现一个成功的代码时,自己真的觉得很有成就感。虽然我编写一个程序要话费我很多的时间,而且到最后得到的程序也不是完美的,但是过程比胜利的那一刻更加耐人寻味。希望以后能够学好编程。 Low=mid+1 High=mid-1 ST[i]=key No Yes End 返回i ST[i],key ; Start i++ ST[i]=key No Yes End 返回i 初始位置ST[1],key=x Start

您可能关注的文档

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档