《数据结构与算法》全套PPT课件.pptx

《数据结构与算法》全套PPT课件.pptx

第1章绪论;1.1 数据结构的研究对象 ;1.1 数据结构的研究对象; 例 2 八枚硬币问题 ; 例3教学计划编排问题;计算机解决问题的步骤:; 数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中如何表示和实现”的学科。实质上好的程序设计就是好的算法加之好的数据结构。;1.2数据结构的发展概况; 1968年美国唐?欧?克努特所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。从20世纪69年代末到70年代初,人们就越来越重视“数据结构。从20世纪70年代中期到80年代初,各种版本的数据结构著作就相继出现。; 目前在我国,“数据结构”已成为计算机专业的核心课程之一,而且是其他非计算机专业的主修课程之一。;1.3 基本概念与术语; 是数据(集合)中的一个“个体”,在计算机中通常作为一个整体进行考虑和处理。是数据结构中讨论的基本单位。; 其中每个款项称为一个“数据项”;数据结构:;从关系或结构分,数据结构可归结为以下四类:;数据结构的形式定义描述为:;数据结构包括“逻辑结构” 和“物理结构”两个方面(层次):;数据结构在计算机中的表示:;顺序存储;索引存储;1.4 数据类型与抽象数据类型;1.4.1 数据类型;例如,C 语言中提供的基本数据类型有:; 不同类型的变量,其所能取的值的范围不同,所能进行的操作不同。;各种高级程序设计语言中都拥有“整数”类型,尽管它们在不同处理器上实现的方法不同,但对程序员而言是“相同的”,因为它们的数学特性相同。;1.4.2 抽象数据类型;抽象数据类型还包括用户在设计软件系统时自己定义的数据类型。;ADT 有两个重要特征:;抽象数据类型的描述方法;例如,定义抽象数据类型“复数”;基本操作:; GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。;基本操作的实现:;void add(complex z1,complex z2,complex sum){//以sum返回两个复数z1,z2的和 };1.5 算法与算法分析;1.5.1 算法;1.有穷性 对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有??时间内完成;;3.可行性 算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之;; 5.有输出 它是一组与“输入”有确 定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。;1.5.2 算法设计的原则;1.正确性; c.程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果;;2. 可读性;3.健壮性;4. 高效率与低存储量需求;1.5.3 算法效率的衡量方法和准则;和算法执行时间相关的因素:; 一个特定算法的“运行工作量” 的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函数。; 假如,随着问题规模 n 的增长,算法执行时间的增长率和 f(n) 的增长率相同,则可记作:;如何估算 算法的时间复杂度?;算法 = 控制结构 + 原操作 (固有数据类型的操作); 从算法中选取一种对于所研究的问题来说是 基本操作 的原操作,以该基本操作 在算法中重复执行的次数 作为算法运行时间的衡量准则。;for ( i = 1; i =n; ++i ) for ( j = 1; j =i; ++j ) for (k =1; k =j; ++k ) x=x+2;;例 起 泡 排 序; 对于原操作的执行次数不确定时的时间复杂度,其平均时间复杂度依照原操作执行次数的概率计算;而最坏情况下的时间复杂度是指在最坏情况下的原操作次数。如无特别说明,以后均指这种情况。;1.5.4 算法的存储空间需求;算法的存储量包括:; 若输入数据所占空间只取决于问题 本身,和算法无关,则只需要分析除 输入和程序之外的辅助变量所占额外 空间。;1.6 典型例题; m的值等于赋值语句m=m+1的执行次数。;例3求下面的程序段的时间复杂度。 int f3(int n){ int i=1,j,x=0; while(in){ for(j=1;j=n;j++)x=x+1; i=2*i; return i; } }; 例4下列算法对一位二进制数加1,假如无溢出,该算法的最坏时间复杂度是什么?并分析它的平均时间复

文档评论(0)

1亿VIP精品文档

相关文档