算法分析与设计 课程中分治策略的典型例子,采用MFC文档编程可视化实现算法; 能够手动进行对棋盘的颜色填充,并能显示棋盘中的填充数值。 由于这是课程作业,时间紧而赶制的,封装性可能比较差。 我用的版本是C++6.0的老版本,静态链接库,其中的exe可以直接运行。
2022-04-07 11:21:17 4.45MB 算法分析 分治策略 棋盘覆盖
1
不会吧!都2022年了,你还没有弄懂最接近点对问题??? 相信我,就看这一篇就够啦!!! 1.问题描述 给定平面上n个点,找其中的一对点,使得在n个点组成的所有点对中该点对间的距离最小。 2.实验目的 1)掌握递归与分治法的基本思想及基本原理。 2)掌握使用分治法求解问题的一般特征及步骤。 3)掌握分治法的设计方法及复杂性分析方法。 掌握分治法解平面最接近点对算法设计思想、算法设计过程及程序编码实现。 采用分治法解最接近点对问题。请回答以下问题: 1)一维情形下如何用线性时间完成合并步骤? 2)二维情形下递归求解递归出口如何设置? 3)二维情形下证明该问题具有稀疏性质:什么是鸽舍原理?二维情形下为什么跨分割线点对能构成最接近点对候选者的最多只有6对? 4)在二维情形下如何能用线性时间完成左右最近点对与中间跨分割线点对的比较? 5)对算法做时间复杂性分析。 6)本题选做:二维情形设采用分治法解最接近点对问题,编程实现。
4.1 取余运算 4.2 地毯填补问题 4.3 平面上的最接近点对 4.4 求方程的根 4.5 小车问题 4.6 黑白棋子的移动 4.7 麦森数(NOIP2003) 4.8 旅行家的预算(NOIP1999) 4.9 飞行计划
1
算法导论:递归分治策略
2021-12-24 09:04:28 2.49MB 算法导论
1
算法分析与设计实验报告
2021-11-12 14:08:51 2.64MB 算法 实验报告
理解递归的概念 掌握设计有效算法的分治策略:分治法的基本思想 通过范例学习分治策略的算法分析及设计技巧 二分搜索技术、大整数的乘法、Strassen矩阵乘法 合并排序和快速排序
2021-11-10 19:34:28 1.48MB 递归 分治策略
1
二维空间的最接近点对问题 下面来考虑二维的情形。 选取一垂直线l:x=m来作为分割直线。其中m为S中各点x坐标的中位数。由此将S分割为S1和S2。 递归地在S1和S2上找出其最小距离d1和d2,并设d=min{d1,d2},S中的最接近点对或者是d,或者是某个{p,q},其中p∈P1且q∈P2 ,如图2-9所示。 能否在线性时间内找到p,q? 考虑P1中任意一点p,它若与P2中的点q构成最接近点对的候选者,则必有distance(p,q)<d。满足这个条件的P2中的点一定落在一个d×2d的矩形R中,如图2-10所示。 由d的意义可知,P2中任何2个S中的点的距离都不小于d。由此可以推出矩形R中最多只有6个S中的点。 图2-9距离直线l小于d的所有点 图2-10包含q的d×2d矩形R
2021-11-05 10:39:25 1.69MB 递归算法 分治策略
1
分治策略 合并排序 快速排序 代码 C语言 是自己写的程序,还请各位指教
2021-10-26 22:39:17 310KB 分治策略 合并排序 快速排序
1
各排序算法平均时间的曲线图 * 算法设计与分析 *
2021-10-17 18:02:37 1.48MB 递归 分治策略
1
最接近点对问题 给定平面上n个点的集合S,找其中的一对点,使得在n个点组成的所有点对中,该点对间的距离最小。 为了使问题易于理解和分析,先来考虑一维的情形。此时,S中的n个点退化为x轴上的n个实数 x1,x2,…,xn。最接近点对即为这n个实数中相差最小的2个实数。 假设我们用x轴上某个点m将S划分为2个子集S1和S2 ,基于平衡子问题的思想,用S中各点坐标的中位数来作分割点。 递归地在S1和S2上找出其最接近点对{p1,p2}和{q1,q2},并设d=min{|p1-p2|,|q1-q2|},S中的最接近点对或者是{p1,p2},或者是{q1,q2},或者是某个{p3,q3},其中p3∈S1且q3∈S2。 能否在线性时间内找到p3,q3?
2021-10-13 13:58:19 791KB 算法 递归 分治
1