
求数据结构 中 @语句的频度 三道题
1、设为正整数,确定@语句的频度。(1)i=1;k=0;while(i<=n-1){k+=10*i;//@语句i++;}(2)k=0;for(i=1;i<=n;i++){...
1、 设为正整数,确定@语句的频度。
(1) i=1;k=0;
while (i<=n-1)
{
k+=10*i; // @语句
i++;
}
(2) k=0;
for(i=1;i<=n;i++)
{ for(j=i;j<=n;j++)
k++; //@语句
}
(3) for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
for (k=1;k<=j;k++)
x+=dalta; //@语句 展开
(1) i=1;k=0;
while (i<=n-1)
{
k+=10*i; // @语句
i++;
}
(2) k=0;
for(i=1;i<=n;i++)
{ for(j=i;j<=n;j++)
k++; //@语句
}
(3) for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
for (k=1;k<=j;k++)
x+=dalta; //@语句 展开
1个回答
展开全部
t;d4(线形关系)
2.语句的频度就是该语句执行的次数:
(1)执行了n-1次,即用线性阶表示就是o(n)
(2)执行了n-1次, 即用线性阶表示就是o(n)
(3)执行了n-1次,即用线性阶表示就是o(n)
(4)执行了(n+1)*n/2次, 用平方阶表示就是o (n*n)
3.我是用的快速排序,也有其它的方法
#include <stdio.h>
void getMax(int a,int b,int c){
int m;
if (a<b){
m=b;b=a;a=m;
}
if (a<c){
m=c;c=a;a=m;
}
if (b<c){
m=c;c=b;b=m;
}
printf("%d%d%d",a,b,c);
}
void main(){
int a;
int b;
int c;
printf("please input a,b,c");
scanf("%d%d%d",&a,&b,&c);
getMax(a,b,c);
}
4.#include <stdio.h>
int importw(){
int n;
int i;
int maxint=1000000000;
long max=1;
printf("请输入正整数n:\n");
scanf("%d",&n);
if (n<=0){
n=importw();
}
else if (n>20){
printf("输入的n大于存储长度,请您输入n小于20");
n=importw();
}
else{
if (n==1){
max=2;
}
else{
for (i=1;i<=n;i++){
max=max*i;
}
max=max*2;
if (max>maxint||max<0){
printf("您输入的n值过大,请重新输入\n");
n=importw();
}
}
}
return n;
}//得到正确的n值
void accountw(){
int n;
n=importw();
int a[20];
int i;
int j;
if (n==1){
a[0]=2;
printf("值列表为:\n");
printf("%d",a[0]);
}
else {
a[0]=2;
for (i=1;i<n;i++){
int amass;
amass=amass*i;
a[i]=amass*2;
}
printf("结果列表:\n");
for (j=1;j<n;j++){
printf("%d\n",a[j]);
}
}
}//计算阶乘的值
void main(){
accountw();
}
2.语句的频度就是该语句执行的次数:
(1)执行了n-1次,即用线性阶表示就是o(n)
(2)执行了n-1次, 即用线性阶表示就是o(n)
(3)执行了n-1次,即用线性阶表示就是o(n)
(4)执行了(n+1)*n/2次, 用平方阶表示就是o (n*n)
3.我是用的快速排序,也有其它的方法
#include <stdio.h>
void getMax(int a,int b,int c){
int m;
if (a<b){
m=b;b=a;a=m;
}
if (a<c){
m=c;c=a;a=m;
}
if (b<c){
m=c;c=b;b=m;
}
printf("%d%d%d",a,b,c);
}
void main(){
int a;
int b;
int c;
printf("please input a,b,c");
scanf("%d%d%d",&a,&b,&c);
getMax(a,b,c);
}
4.#include <stdio.h>
int importw(){
int n;
int i;
int maxint=1000000000;
long max=1;
printf("请输入正整数n:\n");
scanf("%d",&n);
if (n<=0){
n=importw();
}
else if (n>20){
printf("输入的n大于存储长度,请您输入n小于20");
n=importw();
}
else{
if (n==1){
max=2;
}
else{
for (i=1;i<=n;i++){
max=max*i;
}
max=max*2;
if (max>maxint||max<0){
printf("您输入的n值过大,请重新输入\n");
n=importw();
}
}
}
return n;
}//得到正确的n值
void accountw(){
int n;
n=importw();
int a[20];
int i;
int j;
if (n==1){
a[0]=2;
printf("值列表为:\n");
printf("%d",a[0]);
}
else {
a[0]=2;
for (i=1;i<n;i++){
int amass;
amass=amass*i;
a[i]=amass*2;
}
printf("结果列表:\n");
for (j=1;j<n;j++){
printf("%d\n",a[j]);
}
}
}//计算阶乘的值
void main(){
accountw();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询