- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法 算法和数据结构是程序设计的基础 算法 一、算法的两要素 算法有操作和控制结构两要素组成。 操作:计算机进行的每一步运算,每一项工作统称为操作 算法的控制结构: 顺序结构 选择结构 循环结构 二、算法的特征 有穷性:一个算法应包含有限的操作步骤 确定性:算法中每一个指令必须有确切的含义,不能有歧义性。 可行性:一个算法描述的操作可以通过已经实现的基本运算执行有限次来实现。 输入:有零个或多个输入 输出:有一个或多个输出 三、算法的表示 算法一般有自然语言、流程图、伪代码等几种 常用的表示方法。 1、用自然语言表示算法 用自然语言表示算法优点是通俗易懂,缺点是易产生歧义、语句繁琐冗长、计算机不能处理 2、用流程图表示算法 用流程图表示算法直观、形象,易于理解。缺 点是其占用篇幅过多,表示复杂算法时画流程图费 时费力,不便于修改。 3、用伪代码表示算法 伪代码是用一种介于自然语言和计算机语言之 间的文字和符号来描述算法。其优点是书写格式自 由,易于表达设计思想,易于修改和向计算机语言 程序过渡。缺点是描述算法容易出现错误。 四、算法的评价 1、算法的设计目标 1)正确性:算法应当满足具体问题的需求,并正确反映这种需求 2)可读性:易于阅读和交流,便于编写程序 3)容错性: 4)高效率和低存储量需求 2、算法的时间复杂度和空间复杂度 1)时间复杂度:时间复杂度是用程序执行的时间来衡量算法复杂程度的概念。 2)空间复杂度:根据算法编制成程序后,在计算机运行时所占的存储单元的多少来衡量算法的复杂度。 其所占用的存储单元由三部分组成: 指令、常数、变量所占用的存储空间 输入数据所占用的存储空间 算法执行过程所需要的辅助存储空间 注意:算法的时间复杂度和空间复杂度是一对矛盾 的量。 五、常用算法 1、枚举法 2、迭代法 3、递归法 4、回溯法 数据结构 一、概述 计算机早期运算:主要进行数值运算,原始数据 和结果数据不多,重点不在于算法。 计算机应用的发展:逐渐变成对数据进行非数值 型的加工处理为主;其特点是数据量大,主要进行 数据处理,而非数值运算。 数据结构的提出:为研究和解决诸如数据的分类 与查找、情报检索、数据库、企业管理、图形识别 等日常生活中非数值问题而提出的理论与方法,其 研究的是如何合理的组织数据,以提高数据处理的 效率。 (一)线性数据结构 各数据元素之间的逻辑关系可以用一个线性序列简单地表示出来。线性表是典型的线性结构,除此之外还有栈、队列等。 (二)非线性结构 不满足线性结构特点的数据结构称为非线性结构。如树、图等是非线性结构。 树中的数据元素是分层次的纵向联接。 图中的数据元素则有各种各样复杂联接。 其它种类的数据结构由这三种基本结构派生的。 五、数据的运算 对一些典型数据结构中的结点进行操作处理。 1.插入:在数据结构中的指定位置上插入新的数据元素; 2.删除:根据一定的条件,将某个结点从数据结构中删除; 3.更新:更新数据结构中某个指定结点的值; 4.查找:在给定的数据结构中,找出满足一定条件的结点来,条件可以是某个或几个数据项的值; 5.排序:根据某一给定的条件,将数据结构中所有的结点重新排列顺序等。 线性表——最简单,最常用的一种数据结构 一个线性表是n个元素的有限序列(表中所有元素必须是相同的数据类型),表中元素的个数n定义为线性表的长度,n=0的表称为空表。 一、线性表的结构特点是: 各元素之间呈线性关系,即除第一个元素没有前趋元素,最后一个元素没有后继元素外,其余所有元素有且仅有一个前趋,有且仅有一个后继。 三、线性表的存储结构 一个线性表运算的实现及其算法设计与其存储结构是直接相关的。 存储结构:顺序存储结构和链接存储结构。 具有顺序存储结构的线性表称为顺序表,即用一组地址连续的存储单元依次存储线性表中的每个数据元素。 具有链式存储结构的线性表称为线性链表(也简单称为链表),链式存储结构是用一组任意的存储单元来存储线性表中数据元素的,这组存储单元可以是连续的,也可以是不连续的。常用的链表有单链表、循环链表和双向链表。 1、顺序存储结构线性表(顺序表) 顺序表在各种高级语言里经常用一维数组实现。 #define MAXSIZE 100 //数组中元素个数的最大值 int list[MAXSIZE]; ①顺序表的插入运算 插入运算是在顺序表的第i个元素和第 i+1个元素之间插入一个新元素x。为了实现这个操作,必须把第i+1到第n个元素依次向后移位一个位置,把第i+1个存储位置空出来,存储新元素x。插入后应保持线性表的结构特点。 考
您可能关注的文档
最近下载
- 实施指南《GB_T19494.2-2023煤炭机械化采样第2部分:煤样的制备》实施指南.docx VIP
- GB 55030-2022 建筑与市政工程防水通用规范.docx VIP
- VTE相关知识培训课件.pptx VIP
- 2025年医院抗菌药物临床合理应用考核试题(附答案).docx VIP
- 人员设备资金等方面具有相应的施工能力承诺书.doc VIP
- 2022 GA2LEN指南:食物过敏的管理.pdf VIP
- DB23_T2869—2021_鸟类环志技术规范_黑龙江省.docx VIP
- 山洪灾害预警预报技术_任波 李卫平 黄立志 著_2018_1.pdf
- 2024年一建《水利实务》考试真题及答案-完整版.pdf VIP
- 审计专业判断的影响因素论文.docx VIP
文档评论(0)