第 1 章作业与练习。
姓名:李明远学号:1130310126 八。 算法设计(要求:算法用伪**和 c/c++/j**a 描述,并分析最坏情况下的时间复杂度)
1. 对一个整型数组 a[n]设计一个排序算法。
伪**实现:
void datasort(array a,int n)
int i,j,temp;
for(i←0; i
c**实现:
void datasort(int a,int n)
int i,j,temp;
for(i=0; i
最坏情况下时间复杂度分析:
基本语句: if(a[j]>a[i])。
问题规模: n。
每执行temp=a[j],a[j]=a[i],a[i]=temp时,耗时为o(1),循环次数为。
n-j-1,外层循环执行2次,所以总共耗时为2*n*o(1),所以时间复杂度为o(n)。
3. a 是一个有 n 个不同元素的实数数组,写出确定给定实数 k 是否在 a 中的算法,分析时间复杂性(要求:问题规模、基本语句,o 记号),并在极器验证你的复杂度。
伪**实现:
int found(float a,int n,float s)
int i;
for(i←0;i
否则函数返回值为0;
c**实现:
int found(float a,int n,float s)
int i;
for(i=0;i
return 0;
最坏情况下时间复杂度分析:
基本语句: if(fabs(a[i]-s)<=1e-5)
问题规模: n。
每执行if(fabs(a[i]-s)<=1e-5)时,耗时为o(1),外层循环次数为n次,所以总共耗时为n*o(1),所以时间复杂度为o(n)。
4.设 a 是一个有 n 个不同元素的实数数组,写出求其最大和最小元素的算法,分析其时间复杂性。并在机器上验证你的复杂度。
伪**实现:
void foundmaxandmin(float a,int n)
float max,min;
int i;
max←min←a[0];
for(i←1;i
printf "最大值";max
printf "最小值";min
c**实现:
void foundmaxandmin(float a,int n)
float max,min;
int i;
max=min=a[0];
for(i=1;i
printf("the max is %.4f",max);
printf("the min is %.4f",min);
最坏情况下时间复杂度分析:
基本语句: if(a[i]>max)或者else
问题规模: n。
每执行if(a[i]>max)或者else时,耗时为o(1),外层循环次数为n次,所以总共耗时为n*o(1),所以时间复杂度为o(n)。
5.写出汉诺塔问题的求解算法,分析其时间复杂性。并在机器上验证你的复杂。
度。伪**实现:
void hanoi(n,a,b,c)
begin
if n=1 then write(a,’-c) /把盘子直接从a移动到c
hanoi(n-1,a,c,b以c柱为中转柱将n-1个盘子从a柱移动到柱。
write(a,’-c把剩下的一个盘子从a移动到c
hanoi(n-1,b,a,c以a柱为中转柱将n-1个盘子从b柱移动到c柱。
end; end;
c**实现:
void hanoi(int n,char a,char b,char c)
if (n==1)
elsevoid move(int n,char a,char b)
printf("move %d: from %c to %c ",n,a,b);
最坏情况下时间复杂度分析:
基本语句:write(a,’-c)。
问题规模: n。
每执行write(a,’-c)时,耗时为1, 函数hanoi运行时间用t(n)表示,那么函数hanoi(n)可以分解为两个hanoi(n-1)和一个移动操作,t(n) =2*t(n- 1)+ 1,所以t(n)= 2^n-1,所以时间复杂度为o(2^n).
第一章习题与作业
1 某流体在圆形直管中作滞流流动时,其速度分布是型曲线,其管中心最大流速为平均流速的倍,摩擦系数 与re的关系为2 水由敞口恒液位的高位槽通过一管道流向压力恒定的反应器,当管道上的阀门开度减小后,水流量将 摩擦系数 管道总阻力损失 3 277k的水粘度为1cp,在内径为20mm的管内作稳定连续层流时...
第一章作业与案例
作业 1 某公司2005年甲产品生产工时和制造费用总额的资料摘录如下 高点低点。生产工时 小时 7500050000 制造费用 元176250 142500 制造费用是由变动成本 固定成本与混合成本三部分组成的。公司对低点制造费用进行了分解 变动成本为50000元,固定成本为60000元,混合成本为...
第一章作业与问题
概率论与数理统计 属应用数学范畴,它观察,分析,描述和处理问题的方法与其它数学分支不同,是一种观测实验与理性思维相结合的科学方法。第一章。作业 以下凡未给内容的题目选自教材习题一。1.从0,1,2,9十个数字中,先后随机取出两数,写出下列取法中的样本空间 1 抽取可放回时的样本空间 1 1 抽取不放...