[计算机软件及应用]chapter1 是.ppt

[计算机软件及应用]chapter1 是

* * * * Calculate time complexity of the following program segment: s=0; for (i=0;i=n;i++) for (j=0;j=n;j++) for (k=0;k=i+j;k++) s++; 解:该算法的基本操作是语句S++,其频度为: 例 一个没有循环的算法的基本运算次数与问题规模n无关,记作O(1),也称作常数阶。 一个只有一重循环的算法的基本运算次数与问题规模n的增长呈线性增大关系,记作O(n),也称线性阶。 其余常用的还有平方阶O(n2)、立方阶O(n3)、对数阶O(log2n)、指数阶O(2n)等。 各种不同数量级对应的值存在着如下关系: O(1)O(log2n)O(n)O(n*log2n)O(n2) O(n3)O(2n)O(n!) 例 求阶乘和:sum=1!+2!+3!+……+n! 方法1: float sum1(int n) {float s=0,p=1; int i; for(i=1;i=n;i++) { p=p*i; s=s+p} return s; } time complexity :T(n) = O(n) 方法2: float sum1(int n) {float s=0,p

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档