主题:数据结构课后题答案
大家看一下我也不清楚这是哪本书的答案,大家看一下。
第一章 绪论
1.1 试写一个算法,自大到小依次输出顺序读入的三个数X、Y和Z的值。
void Desceding(int &x, int &y, int &z) {
//将x、y和z按从大到小的顺序排列
if (x<y) x←→y;
if (x<z) x←→z;
if (y<z) y←→z;
}//Desceding
1.2 试编一个算法求一维数组float a[n]中的所有元素之和。
float sum(float a[], int n) {
// 求数组a[n]中所有元素之和
for (i=0; i<n; ++i) sum+=a[i];
return sum;
}//sum
1.3 分析下列各算法的时间复杂度:
(1)void prime(int n){
/* 判断n是否是素数 */
for (i=2; ((n%i)!=0)&&(i<sqrt(n)); i++);
if i>sqrt(n) printf("%d is a prime number", n)
else printf("%d is not a prime number", n);
}/* prime */
最坏情况下O(sqrt(n))
(2) float sum1(int n){
/* 计算1!+2!+…+n! */
p=1; sum1=0;
for (i=1; i<=n; ++i){
p=p*i; sum1=sum1+p
}
}/* sum1 */
O(n)
(3) float sum2(int n){
/* 计算1!+2!+…+n! */
sum2=0;
for (i=1; i<=n; ++i){
[color=FF0000][/color][color=000000][/color]
如果是的话我在把所有的发上来,太大了。我们这里怎么不可以添加附件呀!
第一章 绪论
1.1 试写一个算法,自大到小依次输出顺序读入的三个数X、Y和Z的值。
void Desceding(int &x, int &y, int &z) {
//将x、y和z按从大到小的顺序排列
if (x<y) x←→y;
if (x<z) x←→z;
if (y<z) y←→z;
}//Desceding
1.2 试编一个算法求一维数组float a[n]中的所有元素之和。
float sum(float a[], int n) {
// 求数组a[n]中所有元素之和
for (i=0; i<n; ++i) sum+=a[i];
return sum;
}//sum
1.3 分析下列各算法的时间复杂度:
(1)void prime(int n){
/* 判断n是否是素数 */
for (i=2; ((n%i)!=0)&&(i<sqrt(n)); i++);
if i>sqrt(n) printf("%d is a prime number", n)
else printf("%d is not a prime number", n);
}/* prime */
最坏情况下O(sqrt(n))
(2) float sum1(int n){
/* 计算1!+2!+…+n! */
p=1; sum1=0;
for (i=1; i<=n; ++i){
p=p*i; sum1=sum1+p
}
}/* sum1 */
O(n)
(3) float sum2(int n){
/* 计算1!+2!+…+n! */
sum2=0;
for (i=1; i<=n; ++i){
[color=FF0000][/color][color=000000][/color]
如果是的话我在把所有的发上来,太大了。我们这里怎么不可以添加附件呀!