电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

算法与数据结构算法与流程

38页
  • 卖家[上传人]:san****019
  • 文档编号:70184047
  • 上传时间:2019-01-16
  • 文档格式:PPT
  • 文档大小:627.50KB
  • / 38 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、算法与流程图,第章,图与网的定义和术语,2,目标,数据结构与算法 C程序的基本结构 用流程图描述算法 用C语言描述算法,图与网的定义和术语,3,引例: 首先分析学籍档案类问题。设一个班级有50个学生,这个班级的学籍表如表所示。 我们可以把表中每个学生的信息看成一个记录,表中的每个记录又由7个数据项组成。该学籍表由50个记录组成,记录之间是一种顺序关系。这种表通常称为线性表,数据之间的逻辑结构称为线性结构,其主要操作有检索、查找、插入或删除等。,学 籍 表,数据结构的基本概念和术语6-1,图与网的定义和术语,4,又如,对于学院的行政机构,可以把该学院的名称看成树根,把下设的若干个系看成它的树枝中间结点,把每个系分出的若干专业方向看成树叶,这样就形成一个树型结构,如下图所示。 树中的每个结点可以包含较多的信息,结点之间的关系不再是顺序的,而是分层、分叉的结构。树型结构的主要操作有遍历、查找、插入或删除等。,数据结构的基本概念和术语6-2,图 专业设置,图与网的定义和术语,5,最后分析交通问题。如果把若干个城镇看成若干个顶点,再把城镇之间的道路看成边,它们可以构成一个网状的图,这种关系称为图

      2、型结构或网状结构。这是一个图论方面的问题。交通图的存储和管理确实不属于单纯的数值计算问题,而是一种非数值的信息处理问题。,数据结构的基本概念和术语6-3,图 交通示意图,图与网的定义和术语,6,一般来说,数据结构研究的是一类普通数据的表示及其相关的运算操作。数据结构是一门主要研究怎样合理地组织数据,建立合适的数据结构,提高计算机执行程序所用的时间效率和空间效率的学科。,数据结构的基本概念和术语6-4,7,数据(Data)-描述客观事物的数字、字符以及所有能够输入到计算机中并被计算机处理的信息的总称。 数据元素(Data Element)-是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。数据元素除了可以是一个数字或一个字符串以外,它也可以由一个或多个数据项组成。 数据项(Data Item)-是有独立含义的数据的最小单位,有时也称为字段(Field)。,数据结构的基本概念和术语6-5,图与网的定义和术语,8,数据对象(Data Object)-是具有相同性质的数据元素的集合,是数据的一个子集。例如,整数数据对象是集合N=0,1, 2,,字母字符数据对象是集合C=A, B, ,

      3、 Z。本节的学籍表也可看成一个数据对象。 数据结构(Data Structure)-是带有结构的数据元素的集合,它是指数据元素之间的相互关系,即数据的组织形式、存储形式以及定义在它们之上的一组运算。不论是存储结构的设计,还是运算的算法设计,都必须考虑存储空间的开销和运行时间的效率。,数据结构的基本概念和术语6-6,图与网的定义和术语,9,在解决实际问题时,当确定了数据结构之后,需进一步研究与之相关的一组操作(也称运算),主要有插入、删除、排序、查找等。为了实现某种操作(如查找),常常需要设计一种算法。算法(Algorithm)是对特定问题求解步骤的一种描述,是指令的有限序列。描述算法需要一种语言,可以是自然语言、数学语言或者是某种计算机语言。,什么是算法,图与网的定义和术语,10,(1) 输入:一个算法应该有零个、一个或多个输入。 (2) 有穷性:一个算法必须在执行有穷步骤之后正常结束,而不能形成无穷循环。 (3) 确定性:算法中的每一条指令必须有确切的含义,不能产生多义性。 (4) 可行性:算法中的每一个指令必须是切实可执行的,即原则上可以通过已经实现的基本运算执行有限次来实现。 (

      4、5) 输出:一个算法应该至少有一个输出,这些输出是同输入有某种特定关系的量。,算法的特性,图与网的定义和术语,11,算法设计要求,正确性 程序对于典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果 可读性 健壮性 当输入数据非法时,能够适当地做出反应或者进行处理,而不会产生莫名其妙的结果 效率与低存储量需求,图与网的定义和术语,12,算法实现,文档 伪代码 N-S图 流程图 代码 自然语言,13,算法例子,从键盘中输入100个整数,对其中的正整数进行累加,最后输出结果。,图与网的定义和术语,14,算法描述(自然语言),1、输入一个数; 2、如果该数0,累加它; 3、如果100个数没有输入完,转步骤1; 4、输入完100个数后,输出累加和。,图与网的定义和术语,15,算法描述(流程图),16,算法描述(N-S流程图),图与网的定义和术语,17,算法的C语句实现,图与网的定义和术语,18,流程图符号,19,C程序的基本结构,顺序结构 选择结构 循环结构,图与网的定义和术语,20,顺序结构3-1,顺序结构的流程图:,图与网的定义和术语,21,顺序结构3-2,22,顺序结构3-

      5、3,图与网的定义和术语,23,选择结构2-1,选择结构的流程图:,图与网的定义和术语,24,选择结构2-2,25,循环结构2-1,循环结构的流程图:,图与网的定义和术语,26,循环结构2-2,从键盘输入9 个数,找出最大值,图与网的定义和术语,27,流程图的画法,演示使用visio画流程图,28,如何选择描述数据结构和算法的语言是十分重要的问题。在Windows环境下涌现出一系列功能强大、面向对象的描述工具,如Visual C+,Borland C+,Visual Basic,Visual FoxPro等。近年来在计算机科学研究、系统开发、教学以及应用开发中,C语言的使用越来越广泛。因此,我们可以采用C语言进行算法描述。为了能够简明扼要地描述算法,突出算法的思路,一般有以下约定:,用C语言实现算法5-1,图与网的定义和术语,29,(1) 问题的规模尺寸用MAXSIZE表示,约定在宏定义中已经预先定义过,例如: #define MAXSIZE 100 (2) 数据元素的类型一般写成ELEMTP,可以认为在宏定义中预先定义过,例如: #define ELEMTP int 在上机实验时根据需

      6、要,可临时用其他某个具体的类型标识符来代替。,用C语言实现算法5-2,30,(3) 一个算法要以函数形式给出: 类型标识符 函数名(带类型说明的形参表) 语句组 例如: int add (int a,int b) int c; c=a+b; return(c); 除了形参类型说明放在圆括号中之外,在描述算法的函数中其他变量的类型说明一般省略不写,这样使算法的处理过程更加突出明了。,用C语言实现算法5-3,31,(4) 关于数据存储结构的类型定义以及全局变量的说明等均应在写算法之前进行说明。 下面的例子给出了书写算法的一般步骤。 例1.1 有n个整数,将它们按由大到小的顺序排序,并且输出。 分析:n个数据的逻辑结构是线性表(a1,a2,a3,an);选用一维数组作存储结构。,用C语言实现算法5-4,32,用C语言实现算法5-5,/*数组a的数据由主函数提供*/,33,著名的计算机科学家N.沃思提出了一个有名的公式:算法+数据结构=程序。由此可见,数据结构和算法是程序的两大要素,二者相辅相成,缺一不可。一种数据结构的优劣是在实现其各种运算的算法中体现的。对数据结构的分析实质上也就是对实现其

      7、多种运算的算法的分析。评价一个算法应从四个方面进行:正确性、简单性、运行时间、占用空间。但主要看这个算法所要占用机器资源的多少。而在这些资源中时间和空间是两个最主要的方面,因此算法分析中最关心的也就是算法所需的时间代价和空间代价。,算法分析4-1,34,1. 空间 所谓算法的空间代价(或称空间复杂性),是指当问题的规模以某种单位由1增至n时,解决该问题的算法实现所占用的空间也以某种单位由1增至f(n),并称该算法的空间代价是f(n)。,算法分析4-2,35,2. 时间 (1) 语句频度(Frequency Count):指的是在一个算法中该语句重复执行的次数。 (2) 算法的渐近时间复杂度(Asymptotic Time Complexity):算法中基本操作重复执行的次数依据算法中最大语句频度来估算,它是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(f(n),表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度。时间复杂度往往不是精确的执行次数,而是估算的数量级。它着重体现的是随着问题规模的增大,算法执行时间增长的变化趋势。,算法分析4-3,36,例如,在下列三个程序段中: (a) x=x+1; (b) for(i=1;i=n;i+) x=x+1; (c) for(j=1;j=n;j+) for(k=1;k=n;k+) x=x+1; 语句x=x+1的频度分别为1、n和 ,则(a)、(b)、(c)的时间复杂度分别是O(1)、O(n)、O( )。由此可见,随着问题规模的增大,其时间消耗也在增大。,算法分析4-4:常用算法实现与分析,37,结构化程序设计基本要求,自顶向下,模块化设计 使用三种基本结构构造程序 程序书写规范,切勿随心所欲 清晰第一,效率第二 思路清晰 书写清晰(变量名、函数、注解等) 书写注意缩进,38,总结,算法和数据结构 用流程图描述算法 用C语言描术算法,

      《算法与数据结构算法与流程》由会员san****019分享,可在线阅读,更多相关《算法与数据结构算法与流程》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.