早教吧作业答案频道 -->数学-->
设n为正整数,利用大o记号将下列程序段的执行时间表示为n的函数(1)i=1""-k=100.while(i<n)k=k+1i=i+10(2)i=1j=0while(i+j<=n)if(i>j)j++elsei++(3
题目详情
设n为正整数,利用大o记号将下列程序段的执行时间表示为n的函数
(1)i=1""-k=100.while(i<n) k=k+1 i=i+10 (2)i=1 j=0 while(i+j<=n) if(i>j)j++ else i++ (3)for (i=1,i<=n --1,i ++ k) k =i for(j =i +1,jr [j +1]) k =j t =R [k] R[K ]=R [I],R [i]=t .
(1)i=1""-k=100.while(i<n) k=k+1 i=i+10 (2)i=1 j=0 while(i+j<=n) if(i>j)j++ else i++ (3)for (i=1,i<=n --1,i ++ k) k =i for(j =i +1,jr [j +1]) k =j t =R [k] R[K ]=R [I],R [i]=t .
▼优质解答
答案和解析
(1) i=1; k=0
while(i { k=k+10*i;i++;
} ◆ T(n)=n-1
∴ T(n)=O(n)
◇ 这个函数是按线性阶递增的
(2) i=0; k=0;
do{
k=k+10*i; i++;
}
while(i ◆ T(n)=n
∴ T(n)=O(n)
◇ 这也是线性阶递增的
(3) i=1; j=0;
while(i+j1
while (x>=(y+1)*(y+1))
y++; ◆ T(n)=n1/2
∴ T(n)=O(n1/2)
◇ 最坏的情况是y=0,那么循环的次数是n1/2次,这是一个按平方根阶递增的函数.
(5) x=91; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++; ◆ T(n)=O(1)
◇ 这个程序看起来有点吓人,总共循环运行了1000次,但是我们看到n没有? 没.这段程序的运行是和n无关的,就算它再循环一万年,我们也不管他,只是一个常数阶的函数.
while(i { k=k+10*i;i++;
} ◆ T(n)=n-1
∴ T(n)=O(n)
◇ 这个函数是按线性阶递增的
(2) i=0; k=0;
do{
k=k+10*i; i++;
}
while(i ◆ T(n)=n
∴ T(n)=O(n)
◇ 这也是线性阶递增的
(3) i=1; j=0;
while(i+j1
while (x>=(y+1)*(y+1))
y++; ◆ T(n)=n1/2
∴ T(n)=O(n1/2)
◇ 最坏的情况是y=0,那么循环的次数是n1/2次,这是一个按平方根阶递增的函数.
(5) x=91; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++; ◆ T(n)=O(1)
◇ 这个程序看起来有点吓人,总共循环运行了1000次,但是我们看到n没有? 没.这段程序的运行是和n无关的,就算它再循环一万年,我们也不管他,只是一个常数阶的函数.
看了设n为正整数,利用大o记号将下...的网友还看了以下:
在下表中,我们把第i行第j列的数记为ai,j(其中i,j都是不大于5的正整数),对于表中的每个数a 2020-05-14 …
如表,在5×5的表格中,用ai,j表示笫i行第i列的格子里的数(其中I,j都是不大于5的正整数), 2020-05-14 …
己知0<a1<1,数列{an}满足:an+1=an-1+nn+an,n∈N+,则满足ai+aj(i 2020-08-02 …
已知m,n,i,j均为正整数,记ai,j为矩阵An×m=1a1,2…a1,m2a2,2…a2,m…… 2020-10-31 …
设n为正整数,利用大o记号将下列程序段的执行时间表示为n的函数(1)i=1""-k=100.whil 2020-11-01 …
把所有正整数按上小下大,左小右大的原则排成如图所示的数表,其中第i行共有2i-1个正整数,设aij( 2020-11-17 …
把正整数按上小下大、左小右大的原则排成如图所示的数表:第一行有1个正整数,第二行有2个正整数,…,第 2020-11-17 …
正整数按上小下大、左小右大的原则排成如图所示的数表:设aij(i、j∈N*)是位于这个数表中从上往下 2020-11-17 …
把所有正整数按上小下大,左小右大的原则排成如图所示的数表,其中第i行共有2i-1个正整数,设aij( 2020-11-17 …
把正整数按上小下大、左小右大的原则排成如图所示的数表:设(i、j∈N*)是位于这个数表中从上往下数第 2020-11-17 …