- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大学计算机基础;第8章 软件技术基础;8.1 算法与数据结构;8.1.1 算法的基本概念;(1)有穷性:是指算法总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都在有限时间内完成
(2)确定性:是指算法中的每一步都必须有确切的含义,不允许有二义性或多义性。
(3)可行性:是指算法的每一步都是可以通过已经实现的基本运算执行有限次来实现的。
(4)输入:一个算法有零个或多个输入,以描述算法对象的初始情况,零个输入意味着算法本身规定了初始条件。
(5)输出:一个算法有一个或多个输出,以反映对输入数据的处理结果,没有输出的算法是毫无意义的算法。; 算法的描述应直观、清晰、易读、便于维护和修改。描述算法的方法有很多,例如,自然语言、传统流程图、结构化流程图(N-S图)、伪代码语言和计算机语言等。; 流程图是用一些框图来表示各种操作。用图形表示算法,形象直观、易于理解。
分为传统流程图和结构化流程图两种。 ; 伪码语言是可以包含计算机结构化语言的三种基本结构(顺序、选择和循环)、自然语言和数学语言成份的面向读者的一种算法描述语言。所谓伪代码就是用伪码语言描述的算法,它如同一篇文章一样 ,自上而下地写下来,每一行(或几行)表示一个基本操作。它不用图形符号,因此书写方便 、格式紧凑、也比较好懂且易于修改、也便于向计算机语言算法(即程序)过渡。; 传统的流程图用流程线表示各框的执行顺序,对流程线的使用没有限制,使用者可以毫无顾及的使流程随意地转来转去,这不仅破坏了程序的结构,也给阅读和维护带来了困难。
1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其它的从属于它的框。这种流程图又称N-S图(N和S是这两位美国学者的英文姓氏的首字母)。;8.1.1 算法的基本概念;(1)列举法:也叫穷举法或枚举法,就是根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。
(2)归纳法:归纳法的基本思想就是通过列举少量特殊情况,经过分析,最后找出一般的关系。
(3)递推法:就是从己知初始条件出发,逐次推出所要求的各中间结果和最后结果。
(4)递归法:直接或间接的调用自身的算法叫递归算法,递归分直接递归与间接递归两种。
(5)回溯法:通过对问题的分析,找出一个解决问题的线索,然后沿着这个线索逐步试探,对于每一步的试探,若试探成功,就得到问题的解,若试探失败,就逐步回退,换别的路线再进行试探,这种方法称为回溯法。;8.1.2 算法复杂度;一个算法的空间复杂度S(n)是指执行这个算法所需要的内存空间。一般以数量级的形式给出,记作:
S(n)=O(f(n))
其中,n为问题的规模。
一个上机执行的程序除了需要存储空间来寄存本身所用的指令、常数、变量和输入数据外,也需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间。;8.1.3 数据结构的基本概念;数据结构包括数据的逻辑结构和数据的物理结构(也称存储结构)。逻辑结构是从具体问题抽象出的数学模型,它从逻辑上描述数据,是独立与计算机的。数据的存储结构是数据逻辑结构在计算机中的表示(也称映像),在存储时不仅要存储数据D,还要存储数据之间的关系R。
数据结构的形式化定义为一个二元组: Data_Structure=(D,R)
其中,D是数据元素的有限集,R是D上关系的有限集。;数据结构举例:
描述家庭成员之间辈分关系的数据结构:
用二元组表示 DS=(D,R)
D={父亲,儿子,女儿}
R={P}
P={父亲,儿子,父亲,女儿};8.1.4 线性结构与非线性结构;8.1.5 线性表及其顺序存储结构;线性表的顺序存储结构的基本思想(即特征)是:用一片地址连续的存储空间来存放线性表的各元素,用物理上的相邻来表示数据元素间逻辑上的相邻。
在线性表的顺序存储结构中,如果线性表中第i个数据元素的存储地址为Loc(ai),一个数据元素占k个字节,则线性表中第i+1个元素ai+1在计算机存储空间中的存储地址为:Loc(ai+1)=Loc (ai)+ k
一般来说,线性表中第i个元素的存储地址为:
Loc(ai)=Base+(i-1)* k
式中Base是Loc(a1),称为线性表的基地址。
对线性表的基本运算包括:存取、插入、删除、查找、合并、排序、分解、
您可能关注的文档
最近下载
- 小学生三年级中国传统文化ppt课件公开课一等奖.pptx VIP
- 超新星-创新思维训练-王竹立-期末考试答案.pdf VIP
- T/CARM 002-2023 康复医院建设标准.pdf VIP
- 新编大学英语(第四版) 视听说教程2(2023版)(智慧版)B2U1.pptx VIP
- D-Z-T 0433-2023 矿产地质勘查规范 玉石(正式版).docx VIP
- 【技能大赛】《康复治疗技术》赛项技能试题及答案 .pdf VIP
- 第七章各民族1律平等.ppt VIP
- NB/T 47010-2017 承压设备用不锈钢和耐热钢锻件.pdf VIP
- 甘肃省-第五册尾矿库安全风险辨识指引.pdf VIP
- 引水隧洞进水口及洞身混凝土衬砌施工方案.doc VIP
文档评论(0)