数据结构与算法-第一章 绪 论.pptVIP

  • 2
  • 0
  • 约6.87千字
  • 约 38页
  • 2019-08-04 发布于山东
  • 举报
例如 : 1)x=x+1: 2)For (i=1;i=n; i++) x=x+1; 3) For (i=1;i=n; i++) For (j=1;j=n; j++) x=x+1; 算法的频度: f(n) = n+1 + n(n+1) + n2 + n2(n+1) + n3 = 2n3 + 3n2 + 2n + 1 4) void MATRIX( A, B, C, n ) { for (i=1; i=n; i++) { for (j=1; j=n; j++) { C[i][ j]=0; for (k=1; k=n; k++) C[i][j]=C[i][j]+A[i][ k]?B[k][ j]; } } } -------------------------- n+1 ------------------- n(n+1) ---------------------------------- n2 ----------- n2(n+1) ---- n3 华电计算机系 当n→∞时,有f(n)/g(n)=常数≠0, 则称函数f(n)与g(n)同阶,或者说,f(n)与g(n)同一 个数量级,记作 f(n)=O(g(n)) 称上式为算法的时间复杂度,或称该算法的时间复杂 度为O(g(n)) 。其中, n为问题的规模(大小)的量度。 算法的时间复杂度为O(n3) lim(f(n)/g(n)) =lim((2n3 + 3n2 + 2n + 1)/n3) =2 n→∞ n→∞ 关于符号O的的数学定义 华电计算机系 假如随着问题规模n的增长,算法执行所需存储量的增长率和g(n)的增长率相同,则记作S(n)=O(g(n)),称S(n)为算法的空间复杂性。 空间复杂度 算法的存储空间 1.输入数据所占的空间 2.程序本身所占的空间 3.辅助变量所占的空间 华电计算机系 1.4、算法语言的说明 1. 采用自然语言来描述 (1) M除以N,将余数送中间变量R; (2) 测试余数R是否等于零? a) 若R等于零,求得的最大公因子为当前N 的值, 算法到此结束。 b) 若R不等于零,将N送入M,将R送N, 重 复算法的(1)和(2)。 问题:求两个正整数M与N的最大公因子。 华电计算机系 2. 采用程序流程图的形式来描述 开始 M除以N的余数送R 余数R为0否? 输出N的值 结束 将N送M 将R送N no yes 华电计算机系 3. 采用某种具体程序语言来描述 COMFACTOR( M, N ) int M, N; { int R; while ( 1 ) { R=M % N; if (R==0) return N; M=N; N=R; } } 用C语言描述的求两个正整数 最大公因子的算法(C函数) 华电计算机系 类 C语言 4. 设计一种既脱离某种具体的程序设计 语言,又具有各种程序设计语言的共 同特点的形式化语言来描述 华电计算机系 类C语言简介 一、算法的格式 Pascal 语言 PROGRAM 程序名(input, ou

文档评论(0)

1亿VIP精品文档

相关文档