分析以下程序段的时间复杂度。void fun( int n){ int s = 0. i, j, k; for(i=O;i<=n; l忡〉 for(j=O;j<=i;j++) for (k = 0 ;k
答:该算法的其木运算是语口 s++.其频度为[tex=22.143x3.643]O/eU4Nzs1gBrRNO0QJ+41YTEIFfF6OP40/iE+dKYXdWy4n3beAycf6+vIZf68yfF4RyghSgtzS21rd0VYCgaqJCwfV1Z+UwDxOYdbpCeJ4C7YgZV9j4+4qRlBkNlnLUMR6c81HslEGUkNnQAGoOc+hzps8OXu4J95dduxUy1jn3L+/eUznSOTRW3tOG2V5Q9[/tex][tex=14.429x3.357]1W5qJhnD9F0xR+Y77ckYeaDBxlFzq3TdSLi9Gq0/HvjolXFNQ+w8tqkZ5GaixxiFckG2q97ZglUGoCNK5/sAj7HD3YhiJ5MHQOMRsBOmd7DMWhEhwPXKnq31XjWBTQEFtFoUBOiRe5c7b4yLUUfahA==[/tex][tex=14.643x2.786]iPl4iPdTxHreNcExfKtBa3sxzmF1oLM9AwklPmODlkyfBYZA28kVnX0UlOvf53rT3t/NJKrclMQmIfY+G9OIeVMuf8BvNlbNPcy6wwjizzs=[/tex][tex=10.643x2.5]USftzjcRHOz2BMvGQwe4Wp3xja+tgzfeucGJ5odrU4ukr9arh28OOl9KzYP4gbbu+3IPOqU8ycFY0lZ0pTvkMA==[/tex]则该程序段的时间复杂度为[tex=2.857x1.571]lHDQ998mdip2pnzo/mWa5vi2/+w9+aeCkh5aY1LotHU=[/tex]。
举一反三
- 分析以下算法的时间复杂度。void fun( int n)i{ int s = 0,i,i,k; for (i - 0; i<= n; i++ ) for (j= 0;j<=i;j++) for (k = 0;k<j;k++) s tt ;}
- 【单选题】以下算法的时间复杂度() void matrimult(int a[M][N],int b[N][L],int c[M][L]) // { int i,j,k; for(i=0;i<M;i++) for(j=0;j<L;j++) c[i][j]=0; for(i=0;i<M;i++) for(j=0;j<L;j++) for(k=0;k<N;k++) c[i][j]+=a[i][k]*b[k][j]; } A. O(n*l) B. O(m*l) C. O(m*n) D. O(m*n*l)
- 分析以下算法的时间复杂度。void fun(int n){ int i,j,k; for (i=1;i<= n;i++) for (j= 1;<= n;j++) . { k=1; while (k<=n) k=5*k;}
- 下列程序段的时间复杂度为( )。 for(i=0;i<m; i++) for(j=0; j<t; j++) c[i][j]=0; for(i=0;i<m; i++) for(j=0;j<t; j++) for(k=0;k<n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j];
- 下面程序的运行结果是( )。 # include< stdio. h> int main( ) { int a[10]= {1,2,2,3,4.3,4.5,1,5}; int n=0,i,j,c,k; for(i=0;i<10–n;i++) { c=a[i]; for(j=i+1;j<10–n;j++) if(a[j]= =c) { for(k=j;k<10–n;k++) a[k]=a[k+1]; n++; } } for(i=0;i<(10–n);i++) printf("%d",a[i]); return 0; }
内容
- 0
给出下列算法中语句的时间复杂度 x = 0; y = 0; for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) for (int k = 1; k <= j; k++) x=x+y;
- 1
k=1;for(i=0;i<n;i++)for(j=0;j<n;j++)A[i][j]=k++;上述程序段的时间复杂度为() A: O(n2) B: O(n) C: O(2n) D: O(1)
- 2
以下程序的输出结果是()。#include <;stdio.h>;int main(void){int n[2]={O},i,j,k=2;for(i=0;i<;k;i++)for(j=0;j<;k;j++)n[j]=n[i]+1;printf(”%d\n”,n[k]);return 0;}[/i] A: 不确定的值 B: 3 C: 2 D: 1
- 3
程序段 i=0;s=0; while(++i<=n){int p=1; for(j=0; j<i; j++) p*=j; s=s+p; }的时间复杂度为
- 4
以下定义变量、j、k并赋初值的语句,正确的是( )。 A: int i=0, j=0, k=0; B: int i=0;j=0;k=0; C: int i=j=k=0; D: int i=0;j=i;k=j;