用于在图形中查找局部最小值/最大值的爬山算法的时间复杂度

时间:2016-01-19 16:12:32

标签: algorithm time-complexity complexity-theory theory

在具有n个节点的图中找到局部最小值的算法的时间复杂度(算法顺序)是多少(每个节点最多有d个邻居)?

详细信息:我们有一个包含n个节点的图表。图中的每个节点都有一个整数值。每个节点最多有d个邻居。我们正在寻找一个在其邻居中具有最低值的节点。该图由邻接列表表示。该算法首先选择随机节点,并在这些节点内选择具有最小值的节点(假设节点为u)。从节点u开始,算法找到邻居v,其中value(v) < value(u)。然后,它继续v并重复上述步骤。当节点没有任何具有较低值的邻居时,算法终止。这个算法的时间复杂度是什么?为什么?

1 个答案:

答案 0 :(得分:2)

时间复杂度为O(n + d),因为你可以有n个节点,这个节点连接起来,数字显示节点的值:

16-15-14-13-12-11-10-9-8-7-6-5-4-3-2-1

你可以随机选择这些,标有“!”

!-!-!-13-12-11-10-9-8-7-6-5-4-3-2-1

因此,您选择值为14的节点并通过描述alghoritm,您将检查所有节点和所有边缘,直到到达值为1的节点。

任务的最复杂性:“找到一个元素”是O(N),其中“N”是输入的长度,输入的长度实际上是N=G(n,d)=n+d