数据结构第1章 绪论概要1.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第1章 绪论概要1

基本操作: Creat( C, x, y) 操作结果:构造复数 C,其实部和虚部 分别被赋以参数 x 和 y 的值。 GetReal( C, realPart ) 初始条件:复数已存在。 操作结果:用realPart返回复数Z的实部值。 GetImag( C, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。 Add( C1,C2, sum ) 初始条件:C1, C2是复数。 操作结果:用sum返回两个复数C1, C2 的 和值。 ...... } ADT Complex typedef struct { float Realpart; float Imagpart; }Complex; 抽象数据类型复数的表示与实现 // -----基本操作的实现 void Creat( Complex C, float x, float y ) { C.Realpart=x; C.Imagpart=y; } // -----存储结构的定义----表示 float GetReal( complex C)// 返回复数 C 的实部值 void Add( Complex z1, Complex z2, Complex sum ) {// 以 sum 返回两个复数 z1, z2 的和 sum.Realpart = z1.Realpart + z2.Realpart; sum.Imagpart = z1.Imagpart + z2.Imagpart; } { return C.Realpart; } { 其它省略 } 算法定义:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列 算法的描述: 自然语言 流程图 程序设计语言 伪码 1.4  算法和算法分析 算法的特性: 输入 有0个或多个输入 输出 有一个或多个输出(处理结果) 确定性 每步定义都是确切、无歧义的 有穷性 算法应在执行有穷步后结束 有效性 每一条运算应足够基本 算法的评价 正确性 可读性 健壮性 高效性(时间代价和空间代价) 算法效率:用依据该算法编制的程序在计算机上执行所消耗的时间来度量 算法的效率的度量 事后统计 事前分析估计 1.事后统计:利用计算机内的计时功能,不同算法的程序可以用一组或多组相同的统计数据区分 缺点: ?必须先运行依据算法编制的程序 ?所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣 2.事前分析估计: 一个高级语言程序在计算机上运行所消耗的时间取决于: ?依据的算法选用何种策略 ?问题的规模 ?程序语言 ?编译程序产生机器代码质量 ?机器执行指令速度 同一个算法用不同的语言、不同的编译程序、在不同的计算机上运行,效率均不同,———使用绝对时间单位衡量算法效率不合适 算法中基本语句重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作: T(n)=O(f(n)) 时间复杂度的渐进表示法 数学符号“O”的定义为: 若T(n)和f(n)是定义在正整数集合上的两个函数,则T(n)?=?O(f(n))表示存在正的常数C和n0,使得当n≥n0时都满足0≤T(n)≤Cf(n)。 表示随着n的增大,算法执行的时间的增长率和f(n)的增长率相同,称渐近时间复杂度。 n越大算法的执行时间越长 排序:n为记录数 矩阵:n为矩阵的阶数 多项式:n为多项式的项数 集合:n为元素个数 树:n为树的结点个数 图:n为图的顶点数或边数 算法中重复执行次数和算法的执行时间成正比的语句 对算法运行时间的贡献最大 例如:T(n)=4n3+3n2+2n+1= O(n3) 其中c=10,n0=1 n * n阶矩阵加法: for( i = 0; i n; i++) for( j = 0; j n; j++) c[i][j] = a[i][j] + b[i][j]; 语句的频度(Frequency Count ): 重复执行的次数:n*n; T( n ) = O ( n 2) 即:矩阵加法的运算量和问题的规模n的平方是同一个量级 x = 0; y = 0; for ( int k = 0; k n; k ++ ) x ++; for ( int i = 0; i n; i++ ) for ( int

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档