
算法
文章平均质量分 92
shekongdexiaomei_
这个作者很懒,什么都没留下…
展开
-
算法设计与分析(实验6)---最短增益路径法求解最大流问题
在Dinic+弧优化算法下,因为一共e条边,而不管做多少次dfs,因为减少了对死路的判断,保证每次邻接表第一个邻居就是能走的活路,所以每次dfs走n步一定能够走到目标而不必回退,dfs的开销由O(e)变为O(n),而因为最多有e条路径,dfs需要最多做e次,所以每一轮的代价是O(ne),而因为外循环的bfs分层最多进行n次,所以总的代价是O(n2e)。假设有医生n个,现要安排元旦(共D’天)和五一(共D’’天)的排班,医生1的可安排日期为{元旦第1、2天;如果有需要减去改变,重复操作,模拟纠错过程。原创 2024-04-07 18:22:03 · 938 阅读 · 0 评论 -
算法设计与分析(实验5)-----图论—桥问题
排除所有不是桥的边,剩下的即为桥。实验结果表明,基准+并查集算法解决桥问题理论值和实验值在不同数据规模下几乎相同,基准+并查集算法解决稀疏图理论分析得出的O(n^2)的平均时间复杂度是相对准确的,基准算法解决稠密图理论分析得出的O(n^4)的平均时间复杂度是相对准确的。实验结果表明,基准算法解决桥问题理论值和实验值在不同数据规模下几乎相同,基准算法解决稀疏图理论分析得出的O(n^2)的平均时间复杂度是相对准确的,基准算法解决稠密图理论分析得出的O(n^4)的平均时间复杂度是相对准确的。原创 2024-04-07 18:08:46 · 2226 阅读 · 1 评论 -
算法设计与分析(实验4)----动态规划(鸡蛋掉落问题)
①鸡蛋摔碎了,此时剩下N-1个鸡蛋,需要考虑比x层低的楼层,即1,2 ,... , x-1层(比x层高的楼层扔下去必定也摔碎,故不考虑)。②鸡蛋没有摔碎,此时剩下N个鸡蛋,需要考虑比x层高的楼层,即x+1,x+2 ,...,k层(比x层高的楼层扔下去必定不会摔碎,故不考虑)。如果第一次测试(第10层扔下)时碎了,鸡蛋此时只剩下1个了,为了保证能找到阈值,则用该鸡蛋从已知不会碎的最高低层或底层扔起,直到找到该阈值。两个鸡蛋的测试情况,时间复杂度为2N^2,通过实际时间与理论时间对比发现,拟合效果较好。原创 2024-04-07 17:43:28 · 1984 阅读 · 1 评论 -
算法设计与分析(实验3)-----回溯法地图填色问题
在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。对于每次搜索出的节点,拓展的节点为当前的可行解个数。我们可以将地图转换为平面图,每个地区变成一个节点,相邻地区用边连接,我们要为这个图形的顶点着色,并且两个顶点通过边连接时必须具有不同的颜色。2.对附件中三个地图数据尝试分别使用5个(le450_5a),15个(le450_15b),25个(le450_25a)颜色为地图着色。原创 2024-04-07 11:04:19 · 1745 阅读 · 0 评论 -
算法与程序设计(实验2)----分治法求最近点对问题
值得一提的是,在测试的时候发现,当测试规模相同时,每次测试生成的随机数相同,查阅资料得知rand()方法生成的是伪随机数,是根据一个数按照某个公式推算出来的,这个数我们称之为“种子”,但是这个种子在系统启动之后就是一个定值,所以造成了这种问题。这是因为根据分析,当且仅当点对位于该蓝色区域内时,两点间纵坐标之差小于d,任何其他不在该范围内的点横坐标或纵坐标之差必定大于d,距离必定大于d,此时,该点对间距离一定不为最小,故无需进行比较。即输入是平面上的N个点,输出是N点中具有最短距离的两点。原创 2024-04-07 10:39:48 · 941 阅读 · 0 评论 -
算法设计与分析(实验一)
排序问题要求我们按照升序排列给定列表中的数据项,目前为止,已有多种排序算法提出。本实验要求掌握选择排序、冒泡排序、合并排序、快速排序、插入排序算法原理,并进行代码实现。通过对大量样本的测试结果,统计不同排序算法的时间效率与输入规模的关系,通过经验分析方法,展示不同排序算法的时间复杂度,并与理论分析的基本运算次数做比较,验证理论分析结论的正确性。原创 2024-04-06 18:54:03 · 2498 阅读 · 1 评论