数据结构课后习题解答第一章 绪论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章绪论
1.1 试写一个算法,自大到小依次输出顺序读入的三个数X、Y和Z的值。
void Desceding(int &x, int &y, int &z) {
//将x、y和z按从大到小的顺序排列
if (x if (x if (y }//Desceding 1.2 试编一个算法求一维数组float a[n]中的所有元素之和。 float sum(float a[], int n) { // 求数组a[n]中所有元素之和 for (i=0; i return sum; }//sum 1.3 分析下列各算法的时间复杂度: (1)void prime(int n){ /* 判断n是否是素数*/ for (i=2; ((n%i)!=0)&&(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){ p=1; for (j=1; j<=i; ++j) p=p*j; sum2=sum2+p; } }/* sum2 */ O(n2) (4) void sort(int a[],int n){ /* 将数组a中的元素按自小到大的顺序排列*/ for (i=1; i<=n-1; ++i){ k=i;