第九章--算法基本概念.pptxVIP

  • 11
  • 0
  • 约5.74千字
  • 约 26页
  • 2018-06-10 发布于上海
  • 举报
网络科学Network Science主讲人:王小娟邮 箱:wj2718@bupt.edu.cn算法的基本概念运行时间和复杂度1网络数据的存储2邻接矩阵邻接表树堆运行时间和复杂度1算法: 是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。一个算法通常具有五个重要特性:注意:不要把算法和计算机程序等同起来,后者只是描述前者的手段之一,我们还可以用流程图、形式语言与自动机甚至自然语言描述一个算法。 有穷性 有限步结束 确定性唯一执行路径(无歧义) 可行性可以通过基本运算实现 输入零个或多个输入 输出一个或多个输出程序 = 数据结构 + 算法算法和数据结构是两个不可分割的统一体(a)X = X + 1 ;for ( i = 1 ;i=n ;i++ )(b)X = X + 1 ;(c)for ( i = 1 ;i=n ;i++ )for ( j = 1 ;j=n ;j++ )X = X + 1 ;运行时间和复杂度1 从算法中选取一种对于研究的问题来说是基本操作的原操作,以该基本操作重复执行的次数作为算法执行的时间度量。问题的规模(n):或大小。如:矩阵的阶数、图的结点个数、被分类序列的正整数个数……时间复杂度T(n):算法所需时间和问题规模的函数。当n-∞时的时间复杂性,被称之为渐进时间复杂度。空间复杂度S(n):算法所需空间和问题规模函数。当n-∞时的时间复杂性,被称之为渐进空间复杂度。基本操作重复执行的次数分别为 1,n,n2运行时间和复杂度1上界函数:大O符号定义 如果存在两个正常数c和n0,对于所有的n≥n0,有 |T(n)| ≤ c|f(n)|则记作T(n) = Ο(f(n))例如: f(n)=2n2+3n+1=O(n2)在这里,g(n)=n2,c和N的可选值如表所示: 表 对于函数f(n)=2n2+3n+1=O(n2),根据大O定义计算得到的c和N的不同值算法分析中常见的复杂度O(1)O(lgn)O(n)O(nlgn)O(n2)O(n3)O(2n)O(n!) O(nn)常数 对数 多项式 指数O(an)O(nx)O(n)O( lg n)时间复杂度O(1)输入规模(n)运行时间和复杂度1大O符号运行时间和复杂度1大O符号算法的重要性: ·计算机不是万能的,并非所有的算法,计算机都能够计算出有用的结果。差的算法不一 定有实际意义。 举一个例子加以说明。假定时间复杂性函数的时间单位为 us。函数n=20 n=50 n=100 n=500 1000n .02s .05s .15s .5s1000nlogn .09s .3s .6s 4.5s 100n2 .04s .25s 1s 25s10n3 .02s 1s 10s 21分nlogn .4s 1.1小时 220天 5× 108世纪2n/3 .0001s 0.1s 2.7小时 5× 108世纪2n 1s 35年 3× 104世纪3n 58分 2×109世纪易性算法顽性算法运行时间和复杂度1下界函数:Ω符号定义 如果存在两个正常数c和n0,对于所有的n≥n0,有 |T(n)| ≥ c|g(n)| 则记作T(n) = Ω(g(n))含义:如果算法用n值不变的同一类数据在某台机器上运行时,所用的时间总是不小于|g(n)|的一个常数倍。所以g(n)是计算时间T(n)的一个下界函数。试图求出“最大”的g(n),使得T(n) = Ω(g(n))。运行时间和复杂度1平均界限函数:Θ符号定义: 如果存在正数c1,c2及N,对于所有的n≥N,有c1g(n))≤f(n) ≤ c2g(n), 则f(n)= Θ(g(n))。 含义: 算法在最好和最坏情况下的计算时间就一个常数因子范围内而言是相同的。 平均界限函数算法的基本概念运行时间和复杂度1网络数据的存储2邻接矩阵邻接表树堆网络数据的存储2邻接矩阵?邻接矩阵举例由于无向网络的对称性,可以利用上三角矩阵(或下三角矩阵)存储网络。网络的操作:插入:在顶点i和j间增加一条边,需要找到网络中第i行j列元素+1,时间复杂度为O(1)。删除:删除顶点i和j间的边,需要找到网络中第i行j列元素-1,时间复杂度为O(1)。查找:检查顶点i和j间是否存在边,需要找到网络中第i行j列元素,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档