目前我正在处理一个任务(BFS),我应该在其中找到两个节点之间的最长路径。注意,我同时处理队列类和节点类,节点类在我的赋值中称为Word
。单词是3个字母的单词,我目前有一个方法(longestway)返回从给定单词到最小子单词的最长路径。你知道吗
问题是,我想实现它,以便它返回从列表中的任何单词到最小子单词的最长路径,然后返回所有这些路径中最长的路径。你知道吗
我现在的代码是工作,但它采取的方式太长的时间,我需要帮助加快这一个。你知道吗
我的代码当前如下所示:
def printpath1(start):
ordet=longestway(setlista(),start)
path=[]
p=ordet
while p is not None:
path.append(p.ordet)
p=p.parents
path.reverse()
#print (path)
return len(path)
def ordpar(lista):
s=lista
a=[]
for elem in s:
if a[0]<printpath1(elem):
a.pop(0)
a.append(printpath1(elem))
print(a)
printpath1
目前运行良好,但ordpar
运行时间太长,我需要帮助来加快运行速度。你知道吗
一个好的开始是停止从列表的头部删除元素,因为您所做的只是打印,并引入一个偏移量变量。另外,您使用相同的参数调用
printpath1
两次,所需的计算量是原来的两倍。你知道吗相关问题 更多 >
编程相关推荐