计算机软件基础学案.ppt

时间复杂度的计算: 例1: {++x;s=0;} 2 O(1) for(i=1;i=n;++i) {++x;s+=x;} 2n O(n) for(j=1;j=n;++j) for(k=1;k=n;++k) {++x;s+=x;} n*2n O(n2) 例2: 例3: 频度 时间复杂度 程序 例4: 频度 时间复杂度 程序 x=n;//n1 while(x=(y+1)*(y+1)) y++; n1/2-1 O(n1/2) 例5: x=91; y=100; while(y0) if(x100) {x=x-10;y--;} else x++; 常数 O(1) 例6: 频度 时间复杂度 程序 O(n3) int i,j,k,x=0; for(i=1;i=n; i++) for(j=1;j=i; j++) for(k=1;k=j; k++) x=x+2; 按增长率由小至大的顺序排列下列各函数:    2100,(3/2)n,(2/3)n,nn ,n0.5 ,n! ,2n ,lgn ,nlgn,n3/2 思路: 先将题中的函数分成如下几类: 常数阶:2100 对数阶:lgn K次方阶:n0.5、n3/2 指数阶 (按指数由小到大排):nlgn、(3/2)n、2n、 n!、 nn (2/3)n 2100 lgn n0.5 n3/2 nlgn (3/2)n 2n

文档评论(0)

1亿VIP精品文档

相关文档