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