课后习题3.1
来源:互联网 发布:杰伦布朗体测数据 编辑:程序博客网 时间:2024/06/02 06:06
个人做的课后练习
书籍:算法设计与分析基础(第三版)
习题3.1
一.
a.最小生成树算法
b.背包问题
二.
a.
pow(a,n)的蛮力算法,T(n)=n
如果用n的二进制位数表示d表示,T(n)=pow(2,d)
b.
计算 pow(a,n) mod m 的时候,
可以在计算一次乘法的同时就进行一次模的运算。这样就可以保证不会越界。
三.
习题2.3 4.5.6的算法 都是属于满力算法。
四.
a.计算一次n阶多项式的效率。以乘法为关键步骤。
T(n)=(n+1)(n+2)/2
b.
改为线性的算法。
第一种,我们可以增加一个 数组,记录 x的1到n次方所有的结果。这样可以减少重复的计算。
第二种,化简多项式
p(x)=(((an*x+an-1)*x+an-2)*x….)x+a0
c.
还没有想到比线性效果还要好的算法。
五.
时间效率是 T(n)=n^2
六.
a.直线拼板 可以完全覆盖
b.方形拼板 可以完全覆盖
c.L形拼板 可以完全覆盖
d.T形拼板 可以完全覆盖
e.Z型拼板 不可以完全覆盖
七.
a.蛮力算法:逐个比较。T(n)=n-2
b.T(n)=log3(n)
九.
选择排序是稳定的
十.
用链表进行选择排序,可以获得相同的O(n^2)的效率
十二.
a.显然,如果比较一遍之后,发现已经没有元素交换位置。证明了后面的所有元素已经处于有序的状态了,所以,可以停止循环。
b.
BubbleSort(A[0...n-1]){ for i←0 to n-2 do count←0 for j←i to n-2 do if( A[j] < A[j+1] ) temp←A[j] A[j]←A[j+1] A[j+1]←temp count ++ end if end for if(count == 0) break end if end for}
c.逆序的时候。
十三.
冒泡排序是稳定的。
十四.
Change(2n){ for i←1 to n do for j←i*2 to i+1 do temp = A[j] A[j] = A[j-1] A[j-1] = temp}
0 0
- 课后习题3.1
- 课后习题
- 课后习题
- 课后习题
- 计算机基础知识----课后习题
- 网络课后习题
- 课后习题答案
- 计算机网络课后习题
- 课后习题 5_5
- SQL 课后习题数据
- C++课后习题
- APUE课后习题4.6
- 课后习题9--4
- 课后习题9--5
- C++ primer 课后习题
- 第二次课后习题作业
- 课后习题Chapter1
- apue 1 课后习题
- 搭建安全学习环境 DVWA
- 在Ubuntu下安装与配置hadoop(伪分布)
- Failed to create .NET Frameworks PropertyGrid component 问题解决
- JQuery用到的基础知识记录
- Android命令行启动程序-am命令的使用
- 课后习题3.1
- 纯css实现进度条效果
- lucene 6.4.2测试成功 源码
- 判断二叉树是否为二叉排序树
- 关于log日志级别的使用经验
- .net线程使用方式
- Java变量交换的几种方式
- pandas学习笔记
- 16道嵌入式C语言面试题(经典)