算法分析基础——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
1、请采用分治策略实现一维情形下的最近点对问题求解2、请采用分治策略实现二维情形下的最近点对问题求解
2025/8/2 12:10:26 350KB 实验报告 最接近 点对问题 算法
1
前言第1章 绪论第2章 算法复杂度与问题的下界2.1 算法的时间复杂度2.2 最好、平均和最坏情况的算法分析2.3 问题的下界2.4 排序的最坏情况下界2.5 堆排序:在最坏情况下最优的排序算法2.6 排序的平均情况下界2.7 通过神谕改进下界2.8 通过问题转换求下界2.9 注释与参考2.10 进一步的阅读资料习题第3章 贪心法3.1 生成最小生成树的Kruka1算法3.2 生成最小生成树的Prim算法3.3 单源最短路径问题3.4 二路归并问题3.5 用贪心法解决最小圈基问题3.6 用贪心法解决2终端一对多问题3.7 用贪心法解决1螺旋多边形最小合作警卫问题3.8 实验结果3.9 注释与参考3.10 进一步的阅读资料习题第4章 分治策略4.1 求2维极大点问题4.2 最近点对问题4.3 凸包问题4.4 用分冶策略构造Voronoi图4.5 voronoi图的应用4.6 快速傅里叶变换4.7 实验结果4.8 注释与参考4.9 进一步的阅读资料习题第5章 树搜索策略5.1 广度优先搜索5.2 深度优先搜索5.3 爬山法5.4 最佳优先搜素策略5.5 分支限界策略5.6 用分支限界策略解决人员分配问题5.7 用分支限界策略解决旅行商优化问题5.8 用分支限界策略解决O,1背包问题5.9 用分支限界方法解决作业调度问题5.10 A*算法5.11 用特殊的A*算法解决通道路线问题5.12 用A*算法解决线性分块编码译码问题5.13 实验结果5.14 注释与参考5.15 进一步的阅读资料习题第6章 剪枝搜索方法6.1 方法概述6.2 选择问题6.3 两变量线性规划6.4 圆心问题6.5 实验结果6.6 注释与参考6.7 进一步的闷读瓷料习题弟7章 动态规划方法7.1 资源配置问题7.2 最长公共f序列问题7.3 2序列比对问题7.4 RNA最大碱基对匹配问题7.5 0,1背包问题7.6 最优二卫树问题7.7 树的带权完垒支配问题7.8 树的带权单步图边的搜索问题7.9 用动态规划方法解决1螺旋多边形m守卫路由问题7.10 实验结果7.11 注释与参考7.12 进一步的阅读资料习题第8章 NP完全性理论8.1 关十NP完垒性理论的非形式化讨论8.2 判定问题8.3 可满足性问题8.4 NP问题8.5 库克定理8.6 NP完全问题8.7 证明NP完全性的例子8.8 2可满足性问题8.9 注释与参考8.10 进一步的阅读资料习题第9章 近似算法9.1 顶点覆盖问题的近似算珐9.2 欧几里得旅行商问题的近似算法9.3 特殊瓶颈旅行商问题的近似算珐9.4 特殊瓶颈加权K供应商问题的近似算法9.5 装箱问题的近似算法9.6 直线m中心问题的最优近似算法9.7 多序列比对问题的近似算珐9.8 对换排序问题的2近似算法9.9 多项式时间近似方案9.10 最小路径代价生成树问题的2近似算法9.11 最小路径代价生成树问题的Pns9.12 NP0完全性9.13 注释与参考9.14 进一步的阅读资料习题第10章 分摊分析10.1 使用势能函数的例子10.2 斜堆的分摊分析10.3 Av1树的分摊分析10.4 自组织顺序检索启发式方法的分摊分析10.5 配对堆及其分摊分析10.6 不相交集合并算法的分摊分析10.7 一些磁盘调度算法的分摊分析10.8 实验结果10.9 注释与参考10.10 进步的阅读资料习题第11章 随机算法11.1 解决最近点对问题的随机算珐11.2 随机最近点对问题的平均性能11.3 素数测试的随机算法11.4 模式匹配的随机算法11.5 交互证明的随机算法11.6 最小生成树的随机线性时间算法11.7 注释与参考11.8 进一步的阅读资料习题第12章 在线算法12.1 用贪心法解决在线欧几里得生成树问题12.2 在线K服务员问题及解决定义在平面树上该问题的贪心算法12.3 基于平衡策略的在线穿越障碍算法12.4 用补偿策略求解在线二分匹配问题12.5 用适中策略解决在线m台机器调度问题12.6 基于排除策略的三个计算几何问题的在线算法12.7 基于随机策略的在线生成树算法12.8 注释与参考12.
2024/11/10 12:04:19 12.76MB 算法
1
解决最近点对问题的源代码,只有一个源文件,可以在DevC++下直接运行.
2024/1/29 5:13:18 6KB 最近点对问题 源码
1
按课本算法做出来的,请求大家指教,由于是作业所以有不必要的界面输出,请只研究核心代码。
2023/1/17 22:12:56 921KB 蛮力法 最近点对问题
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡