搜索算法效率比较.doc.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
搜索算法效率比较.doc

数据结构课程设计报告 搜索算法效率比较的设计 专业 计算机科学与技术 学生姓名 Xxxxx 班级 Xxxx 学号 Xxxx 指导教师 Xxx 完成日期 2016年6月16日 目 录 1.设计题目 3 2.设计目的及要求 3 2.1.目的 3 2.2.要求 3 3.设计内容 3 4.设计分析 4 4.1.空间复杂度 5 4.2非递归线性搜索设计 5 4.3递归线性搜索 5 4.4二叉搜索设计 6 5.设计实践 7 5.1非递归线性搜索模块设计 7 5.2递归线性搜索模块设计 7 5.3二叉搜索模块设计 7 5.4.主程序模块设计 8 6测试方法 10 7.程序运行效果 11 8.设计心得 12 搜索算法效率比较的设计 1.概述 算法是为求解一个问题需要遵循的、被清楚地指定的简单指令的集合。解决一个问题,可能存在一种以上算法,当这些算法都能正确解决问题时,算法需要的资源量将成为衡量算法优良度的重要度量,例如算法所需的时间、空间等。 1.1.设计目的 数据结构课程设计是为数据结构课程独立开设的实践性教学环节。数据结构课程设计对于巩固数据结构知识,加强学生的实际动手能力和提高学生综合素质是十分必要的。课程设计的目的: 1.要求学生达到熟练掌握C语言的基本知识和技能。 2.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力。 3.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 4.培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。 5.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。 1.2.设计要求 数据结构课程设计用 C/C++编程实现。 课程设计的一般步骤: 1.问题描述与分析:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?限制条件是什么? 2.数据结构设计:为实现每个功能选择的逻辑结构和存储结构,分析原因及合理性。 3.软件结构设计:设计软件模块之间的结构。 4.算法设计:算法的设计及算法分析。每个部分的算法设计说明,可以用流程图描述算法。 5.程序编码:把详细设计的结果进一步求精为程序设计语言程序。源程序要按照软件工程的规则来编写,要求结构清晰,重要功能部分要加上清晰的程序注释。 6.调试分析:掌握调试工具的各种功能,设计测试数据,测试输出的结果。并进行算法的时间复杂度和空间复杂度的分析。 7.总结:课程设计过程的收获,遇到问题以及解决问题的思路和方法,程序调试能力的思考,对数据结构这门课程的认识及思考等。 8.编写课程设计报告。 学生必须仔细阅读数据结构,认真主动完成课设的要求,有问题及时主动通过各种方式与教师联系沟通;要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己计划完成情况;独立思考,课程设计中各任务的设计和调试哦要求独立完成,遇到问题可以讨论,可以通过同学间相互讨论而解决。 2.设计题目 给定一个已排序的由N个整数组成的数列{0,1,2,3,……,N-1},在该队列中查找指定整数,并观察不同算法的运行时间。 考虑两类算法:一个是线性搜索,从某个方向依次扫描数列中各个元素;另一个是二叉搜索法。 要完成的任务是: 分别用递归和非递归实现线性搜索; 分析最坏情况下,两个线性搜索算法和二叉搜索算法的复杂度; 测量并比较这三个方法在N=100,500,1000,2000,4000,6000,8000,10000时的性能。 3.设计内容   任何程序基本上都是要用特定的算法来实现的。算法性能的好坏,直接决定了所实现程序性能的优劣。此次对有关算法设计的基本知识作了简单的介绍。针对静态查找问题,以搜索算法的不同实现,并对非递归线性搜索算法、递归线性搜索算法和二叉搜索算法这三种方法进行了比较和分析。 算法是为求解一个问题需要遵循的、被清楚地指定的简单指令的集合。解决一个问题,可能存在一种以上的算法,当这些算法都能正确解决问题时,算法需要的资源量将成为衡量算法优良度的重要度量,列如算法所需的时间、空间等。算法是对问题求解过程的一种描述,是为解决一个问题或一类问题给出的一个正确的,有限长的操作序列。 两种线性搜索算法的程序结构分别为以下所示。非递归线性搜索从数组的最左边开始,逐个比较,直到找到所搜索的对象或者直到最后搜索失败。递归搜索从最右开始搜索。为什么不从最左边开始?因为从左边开始,每次递归除要传递待处理数列的左边界外,还需要传递运算数组的右边界(即N-1,这在本题目里也是变化的)。从而右边开始,每次只需传递数组的右边界(左边界固定为0)。 所谓时间复杂度时间复杂度?在刚才提到的时间频度中,n称为问

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档