算法分析基础——Fibonacci序列问题
分治法在数值问题中的应用——最近点对问题
减治法在组合问题中的应用——8枚硬币问题
变治法在排序问题中的应用——堆排序问题
动态规划法在图问题中的应用——全源最短路径问题
3. 实验要求
(1)实现Floyd算法;
(2)算法的输入可以手动输入,也可以自动生成;
(3)算法不仅要输出从每个顶点到其他所有顶点之间的最短路径,还有输出最短路径的长度;
(4)设计一个权重为负的图或有向图的例子,对于它,Floyd算法不能输出正确的结果
3. 实验要求
1)设计与实现堆排序算法;
2)待排序的数据可以手工输入(通常规模比较小,10个数据左右),用以检测程序的正确性;也可以计算机随机生成(通常规模比较大,1500-3000个数据左右),用以检验(用计数法)堆排序算法的时间效率
3. 实验要求
1)设计减治算法实现8枚硬币问题;
2)设计实验程序,考察用减治技术设计的算法是否高效;
3)扩展算法,使之能处理n枚硬币中有一枚假币的问题。
3. 实验要求
1)使用教材2.5节中介绍的迭代算法Fib(n),找出最大的n,使得 第n个Fibonacci数不超过计算机所能表示的最大整数,并给出具体的执行时间;
2)对于要求1),使用教材2.5节中介绍的递归算法F(n)进行计算,同样给出具体的执行时间,并同1)的执行时间进行比较;
3)对于输入同样的非负整数n,比较上述两种算法基本操作的执行次数;
4)对1)中的迭代算法进行改进,使得改进后的迭代算法其空间复杂度为Θ(1);
5)设计可供用户选择算法的交互式菜单(放在相应的主菜单下)
1