- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
时间复杂度的渐进表示法 算法中所有语句的次数(频度)之和是矩阵阶数n的函数 f(n) = 2n3 + 3n2 + 2n +1 一般地,称n是问题的规模。执行次数f(n)是关于n的多项式函数,f(n)与执行时间成正比。 当n趋于无穷大时,把执行次数函数f(n)的数量级(阶)称为算法的渐进时间复杂度 T(n) = O(f(n)) ----大O表示’渐进’ T(n) = O(n3) X=1 ;y=1; For(k=1,k=n,k++) X=x+1; { L1 } For(i=1;i=n,i++) { For (j=1;j=n,j++) y=y+1; { L2 } } F(L1)=n;F(L2)=n2; T(n)=0(n2) 可见,当有多个串行的循环语句时,算法的时间复杂度由嵌套层次最多的循环语句中最里层语句的频度决定。 int i = n; while ( i = 1 A[i] != k ) i--; return i; 2.1.3 算法描述 1、数据结构表示 数据存储结构均用类型定义(typedef)的方式描述 2、实现算法 用函数描述 函数类型 函数名(函数参数表) { 内部数据说明; 语句序列; } 本节作业 补充: 1、简述下列概念:数据、逻辑结构、存储结构、线性结构。 2、设n为正整数,利用大“O”记号,将下列程序段的执行时间表示为n的函数。 (1) i=1; k=0 while(in){ k=k+10*i;i++;} (2) i=0; k=0;do{k=k+10*i; i++; }while(in); (3) x=91; y=100; while(y0)if(x100){x=x-10;y--;}else x++; 数据是信息的载体,它可在计算机内加以表示并加工处理。随着技术的进步,数据所能描述的内容越来越丰富。像多媒体技术中涉及到的视频和音频信号,经采集转换后都能形成被计算机所接受的数据。我们把一切能够输入到计算机中并被计算机程序处理的信息,包括文字、表格、图象等,都称为数据 1、集合:任何两个结点之间没有逻辑关系,组织形式松散,没有关系的关系。 2、线性结构:结点按逻辑关系依次列成一条“锁链。 3、树型结构:具有分支,层次特性,其形状有点像自然界中的树。 4、图状结构:各个结点按逻辑关系相互绕缠,任何两个结点都可以邻接,其结构复杂。 在这几种数据的结构中,体现的是数据元素及其关系的数学特性。 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。 数据的存储结构是逻辑结构用计算机语言的实现,即建立数据的机内表示。 每个存储节点只含一个数据元素。所有存储结点相继存储在一个连续的存储区里。用存储结点间的位置关系表示元素之间的逻辑关系 每个存储结点不仅包含一个数据元素,还包含指针。 每一个指针指向与本结点有逻辑关系的结点,即用指针表示逻辑关系。 此外还有索引存储方式(数据连续存放,增设一个索引表)和散列存储方式(数据元素按散列函数确定存储位置) 为方便起见,数据的逻辑结构简称为数据结构,物理结构称为存储结构 每条指令必须是清楚的,指令无二义性 可行性;原则上可由人仅用笔和纸在有限的时间内也能完成。 产生一个或多个结果,没有输出的算法是毫无意义的。 容错功能 本课程的结构 线性表 栈 队列 串 多维数组 树 图 查找 排序 线性结构 非线性结构 算法 第二问题数据结构研究什么 ? 运算 逻辑结构 存储结构 第三问题重新理解算法Algorithm 算法和算法的分析 一、算法 二、算法设计的原则 三、算法效率的度量方法和准则 四、算法的存储空间需求 算法是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特性: 1.有穷性 2.确定性 3.可行性 4.有输入 5.有输出 一、算法 1.有穷性 对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成; 2.确定性 对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径; 3.可行性 算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之; 4.有输入 作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法
文档评论(0)