没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/89476399/bg1.jpg)
1
习题 1.1
5..证明等式 gcd(m,n)=gcd(n,m mod n)对每一对正整数 m,n 都成立.
Hint:
根据除法的定义不难证明:
如果 d 整除 u 和 v, 那么 d 一定能整除 u±v;
如果 d 整除 u,那么 d 也能够整除 u 的任何整数倍 ku.
对于任意一对正整数 m,n,若 d 能整除 m 和 n,那么 d 一定能整除 n 和 r=m mod n=m-qn;显然,若 d
能整除 n 和 r,也一定能整除 m=r+qn 和 n。
数对(m,n)和(n,r)具有相同的公约数的有限非空集,其中也包括了最大公约数。故 gcd(m,n)=gcd(n,r)
6.对于第一个数小于第二个数的一对数字,欧几里得算法将会如何处理?该算法在处理这种输入的
过程中,上述情况最多会发生几次?
Hint:
对于任何形如 0<=m<n 的一对数字,Euclid 算法在第一次叠代时交换 m 和 n, 即
gcd(m,n)=gcd(n,m)
并且这种交换处理只发生一次.
7.a.对于所有 1≤m,n≤10 的输入, Euclid 算法最少要做几次除法?(1 次)
b. 对于所有 1≤m,n≤10 的输入, Euclid 算法最多要做几次除法?(5 次)
gcd(5,8)
习题 1.2
1.(农夫过河)
P—农夫 W—狼 G—山羊 C—白菜
2.(过桥问题)
1,2,5,10---分别代表 4 个人, f—手电筒
4. 对于任意实系数 a,b,c, 某个算法能求方程 ax^2+bx+c=0 的实根,写出上述算法的伪代码(可以假
设 sqrt(x)是求平方根的函数)
算法 Quadratic(a,b,c)
//求方程 ax^2+bx+c=0 的实根的算法
//输入:实系数 a,b,c
//输出:实根或者无解信息
![](https://csdnimg.cn/release/download_crawler_static/89476399/bg2.jpg)
2
If a≠0
D←b*b-4*a*c
If D>0
temp←2*a
x1←(-b+sqrt(D))/temp
x2←(-b-sqrt(D))/temp
return x1,x2
else if D=0 return –b/(2*a)
else return “no real roots”
else //a=0
if b≠0 return –c/b
else //a=b=0
if c=0 return “no real numbers”
else return “no real roots”
5. 描述将十进制整数表达为二进制整数的标准算法
a.用文字描述
b.用伪代码描述
解答:
a.将十进制整数转换为二进制整数的算法
输入:一个正整数 n
输出:正整数 n 相应的二进制数
第一步:用 n 除以 2,余数赋给 Ki(i=0,1,2...),商赋给 n
第二步:如果 n=0,则到第三步,否则重复第一步
第三步:将 Ki 按照 i 从高到低的顺序输出
b.伪代码
算法 DectoBin(n)
//将十进制整数 n 转换为二进制整数的算法
//输入:正整数 n
//输出:该正整数相应的二进制数,该数存放于数组 Bin[1...n]中
i=1
while n!=0 do {
Bin[i]=n%2;
n=(int)n/2;
i++;
}
while i!=0 do{
print Bin[i];
i--;
}
9.考虑下面这个算法,它求的是数组中大小相差最小的两个元素的差.(算法略)
对这个算法做尽可能多的改进.
算法 MinDistance(A[0..n-1])
//输入:数组 A[0..n-1]
![](https://csdnimg.cn/release/download_crawler_static/89476399/bg3.jpg)
3
//输出:the smallest distance d between two of its elements
习题 1.3
考虑这样一个排序算法,该算法对于待排序的数组中的每一个元素,计算比它小的元素个数,然后利
用这个信息,将各个元素放到有序数组的相应位置上去.
a.应用该算法对列表”60,35,81,98,14,47”排序
b.该算法稳定吗?
c.该算法在位吗?
解:
a. 该算法对列表”60,35,81,98,14,47”排序的过程如下所示:
b.该算法不稳定.比如对列表”2,2*”排序
![](https://csdnimg.cn/release/download_crawler_static/89476399/bg4.jpg)
4
c.该算法不在位.额外空间 for S and Count[]
4.(古老的七桥问题)
习题 1.4
1.请分别描述一下应该如何实现下列对数组的操作,使得操作时间不依赖数组的长度.
a.删除数组的第 i 个元素(1<=i<=n)
b.删除有序数组的第 i 个元素(依然有序)
hints:
a. Replace the ith element with the last element and decrease the array size of 1
b. Replace the ith element with a special symbol that cannot be a value of the array’s element(e.g., 0 for
an array of positive numbers ) to mark the ith position is empty.
(“lazy deletion”)
习题 2.1
1
欧几里得算法的时间复杂度
欧几里得算法, 又称辗转相除法, 用于求两个自然数的最大公约数. 算法的思想很简单, 基于下面
的数论等式
gcd(a, b) = gcd(b, a mod b)
其中 gcd(a, b)表示 a 和 b 的最大公约数, mod 是模运算, 即求 a 除以 b 的余数. 算法如下:
输入: 两个整数 a, b
输出: a 和 b 的最大公约数
function gcd(a, b:integer):integer;
if b=0 return a;
else return gcd(b, a mod b);
end function
欧几里得算法是最古老而经典的算法, 理解和掌握这一算法并不难, 但要分析它的时间复杂度却并
不容易. 我们先不考虑模运算本身的时间复杂度(算术运算的时间复杂度在 Knuth 的 TAOCP 中有
详细的讨论), 我们只考虑这样的问题: 欧几里得算法在最坏情况下所需的模运算次数和输入的 a
![](https://csdnimg.cn/release/download_crawler_static/89476399/bg5.jpg)
5
和 b 的大小有怎样的关系?
我们不妨设 a>b>=1(若 a<b 我们只需多做一次模运算, 若 b=0 或 a=b 模运算的次数分别为 0 和 1),
构 造 数 列 {un}: u0=a, u1=b, uk=uk-2 mod uk-1(k>=2), 显 然 , 若 算 法 需 要 n 次 模 运 算 , 则 有
un=gcd(a, b), un+1=0. 我们比较数列{un}和菲波那契数列{Fn}, F0=1<=un, F1=1<=un-1, 又因为由
uk mod uk+1=uk+2, 可得 uk>=uk+1+uk+2, 由数学归纳法容易得到 uk>=Fn-k, 于是得到 a=u0>=Fn,
b=u0>=Fn-1. 也就是说如果欧几里得算法需要做 n 次模运算, 则 b 必定不小于 Fn-1. 换句话说, 若
b<Fn-1, 则算法所需模运算的次数必定小于 n. 根据菲波那契数列的性质, 有 Fn-1>(1.618)n/sqrt(5),
即 b>(1.618)n/sqrt(5), 所以模运算的次数为 O(lgb)---以 b 为底数 = O(lg(2)b)---以 2 为底数,输入规
模也可以看作是 b 的 bit 位数。
习题 2.2
7.对下列断言进行证明:(如果是错误的,请举例)
a. 如果 t(n)∈O(g(n),则 g(n)∈Ω(t(n))
b.α>0 时,Θ(αg(n))= Θ(g(n))
解:
a. 这个断言是正确的。它指出如果 t(n)的增长率小于或等于 g(n)的增长率,那么 g(n)的增长率大
于或等于 t(n)的增长率
由 t(n)≤c·g(n) for all n≥n0, where c>0
则: for all n≥n0
b. 这个断言是正确的。只需证明 。
设 f(n)∈Θ(αg(n)),则有:
for all n>=n0, c>0
for all n>=n0, c1=cα>0
即:f(n)∈Θ(g(n))
又设 f(n)∈Θ(g(n)),则有: for all n>=n0,c>0
for all n>=n0,c1=c/α>0
即:f(n)∈Θ(αg(n))
8.证明本节定理对于下列符号也成立:
a.Ω符号
b.Θ符号
证明:
a。we need to proof that if t1(n)∈Ω(g1(n)) and t2(n)∈Ω(g2(n)), then t1(n)+ t2(n)∈Ω(max{g1(n),
g2(n)})。
由 t1(n)∈Ω(g1(n)),
t1(n)≥c1g1(n) for all n>=n1, where c1>0
由 t2(n)∈Ω(g2(n)),
)()()
1
( ngnt
c
�
))(())(()),(())(( ngngngng
��
������
)()( ngcnf
�
�
)()(
1
ngcnf �
)()( ncgnf �
)()()(
1
ngcng
c
nf
��
�
��
剩余66页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/45bb3dfef5b44d4dbfa924f0e5a9e163_liuning940307.jpg!1)
随风浪仔
- 粉丝: 752
- 资源: 2940
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)