![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
文章平均质量分 94
b1ngsha
笼中鸟
展开
-
【算法设计与分析】最大流应用问题(值班问题)
但是因为节点层次的改动,s->6->1->2->3->t这条路径可选了,对本条路径作同样的处理。例如在以下情况中,找到路径s -> v1 -> v3 -> t之后,回溯到节点v1,尝试路径s -> v1 -> v4 -> t,发现长度也是最短的,则标记该路径,再次进行回溯,发现路径s -> v2 -> v4 -> t也是最短路径。在上述的简单算法中,我们得到的结果可能是错误的,是因为求解的过程与增广路径的选择顺序有关,在路径选择的过程中,一旦选择了一条坏的路径,算法就无法找到正确的最大流。原创 2023-06-08 11:57:28 · 573 阅读 · 2 评论 -
【算法设计与分析】图论(桥)
在图论中,一条边被称为“桥”代表这条边一旦被删除,这张图的连通块数量会增加。等价地说,一条边是一座桥当且仅当这条边不在任何环上。一张图可以有零或多座桥。图 1 没有桥的无向连通图 图 2 这是有16个顶点和6个桥的图(桥以红色线段标示)原创 2023-05-24 10:58:23 · 2355 阅读 · 1 评论 -
【算法设计与分析】分治法(最近点对问题)
考虑最近点对有可能是上述某次递归调用找出的距离为d的点对,也有可能是SL中的一个点与SR中的一个点形成的点对。在分治开始前,已经对X和Y数组进行递增排序,此时取中间点将点集划分为左区域SL和右区域SR,SL中所有点都在中线上或是在中线的左侧,SR中所有点都在中线上或是在中线的右侧。遍历n个点与剩余n-1个点之间的距离,在计算点对距离时不断更新最短距离的值,遍历完所有点对后即可求得最短点对距离。遍历一点在Y’L中,另一点在Y’R中的所有点对距离,并返回得到的最小点对距离。此方法的时间复杂度为O(n²),原创 2023-05-05 23:55:52 · 3151 阅读 · 0 评论 -
【算法设计与分析】回溯法(地图填色问题)
存储好数据后分别对三个数据集进行测试,数据集le450_5a和le450_15b在较长的时间内程序无响应,对其进行检查发现数据集le450_5a在区域103,184之间反复回溯,le450_15b在316,226之间反复回溯,如下所示,在WA中涂上红色,那么删除NT和SA可选颜色中的红色,在Q中涂上绿色,此时NT和SA中都只剩下蓝色可填,如果在NT中涂上蓝色,那么SA中无可选颜色。进行填色,因为度数越大的节点受到其他节点的约束就越大,先填涂其他节点容易导致度数大的节点无可填颜色,延长运行时间。原创 2023-05-05 23:40:08 · 2302 阅读 · 0 评论 -
【算法设计与分析】动态规划(背包问题)
我们需要用鸡蛋确认在多高的楼层鸡蛋落下来会破碎,这个刚刚使鸡蛋破碎的楼层叫门槛层,门槛楼层是鸡蛋开始破碎的楼层,上面所有楼层的鸡蛋也都破了。如上图所示,如果有 5 层,我们只有1个鸡蛋,要找到门槛层,则必须尝试从每一层一层一层地放下鸡蛋,从第一层到最后一层,如果门槛层是第 k 层,那么鸡蛋就会在第 k 层抛下时破裂,应该做了k次试验。给定建筑物的一定数量的楼层(比如 f 层)和一定数量的鸡蛋(比如 e 鸡蛋),找出阈值地板必须执行的最少的鸡蛋掉落试验的次数,注意,这里需要求的是试验的测试,不是鸡蛋的个数。原创 2023-05-05 23:23:48 · 1182 阅读 · 0 评论 -
【算法设计与分析】排序算法性能分析
由本次实验可知,效率较高的排序算法为快速排序和合并排序,两者效率非常接近,其他三种排序算法效率较低,其中选择排序和插入排序效率较为接近。此外,五种排序算法的实际运行效率和理论运行效率曲线基本吻合,可以推测选择排序、冒泡排序、插入排序的时间复杂度为O(n²),合并排序、快速排序的时间复杂度为O(nlogn)原创 2023-04-02 15:06:13 · 518 阅读 · 1 评论