数据结构与算法概论复习习题[3]
数据结构与算法概论复习习题[3]
判断下列各对函数f(n)和g(n) 当时n→∞ 哪个函数增长更快?试用数学归纳法证明
试写一算法 自大至小依次输出顺序读入的三个整数X Y和Z的值
解
int max (int x int y int z)
{
if(x>y)
if(x>z) return x;
else return z;
else
if(y>z) return y;
else return z;
}
已知k阶斐波那契序列的定义为
试编写求k阶斐波那契序列的第m项值的函数算法 k和m均以值调用的形式在函数参数表中出现
解 k> 为阶数 n为数列的第n项
int Fibonacci(int k int n)
{
if(k< ) exit(OVERFLOW);
int *p x;
p=new int[k+ ];
if(!p) exit(OVERFLOW);
int i j;
for(i= ;i<k+ ;i++){
if(i<k ) p[i]= ;
else p[i]= ;
}
for(i=k+ ;i<n+ ;i++){
x=p[ ];
for(j= ;j<k;j++) p[j]=p[j+ ];
p[k]= *p[k ] x;
}
return p[k];
}
假设有A B C D E五个高等院校进行田径对抗赛 各院校的单项成绩均已存入计算机 并构成一张表 表中每一行的形式为
项目名称 性别 校名 成绩 得分
编写算法 处理上述表格 以统计各院校的男 女总分和团体总分 并输出
解
typedef enum{A B C D E} SchoolName;
typedef enum{Female Male} SexType;
typedef struct{
char event[ ]; //项目
SexType sex;
SchoolName school;
int score;
} Component;
typedef struct{
int MaleSum;//男团总分
int FemaleSum;//女团总分
int TotalSum;//团体总分
} Sum;
Sum SumScore(SchoolName sn Component a[] int n)
{
Sum temp;
temp MaleSum= ;
![数据结构与算法概论复习习题[3]](http://img.zhputi.com/uploads/9175/9175a46b48b60c948ef676babae7b94646139.jpg)
temp FemaleSum= ;
temp TotalSum= ;
int i;
for(i= ;i<n;i++){
if(a[i] school==sn){
if(a[i] sex==Male) temp MaleSum+=a[i] score;
if(a[i] sex==Female) temp FemaleSum+=a[i] score;
}
}
temp TotalSum=temp MaleSum+temp FemaleSum;
return temp;
}
lishixinzhi/Article/program/sjjg/201311/23632