-1
我有一个class
调用Graph
来表示连接的无向图,我想实现快速排序基于边上的权重排序边缘。排序图中的边缘
class Graph:
def __init__(self, n):
self.vertices = range(n)
self.edges = set([(random.random(), i, j) for i in xrange(n) for j in xrange(n)])
def qsort(self):
if len(self.edges) <= 1:
return self.edges
else:
return qsort([x for x in self.edges[1:] if x < self.edges[0]]) + [self.edges[0]] + qsort([x for x in self.edges[1:] if x >= self.edges[0]])
graph = Graph(10)
graph.qsort()
当我尝试运行上述,我得到NameError: global name 'qsort' is not defined
。
有人能告诉我我做错了什么吗?
它看起来像涉及2种不同类型。示例代码中的self.sort()不接受任何参数。但呼吁失踪的“全球”qsort()通过一些... – LiMar
良好的通话。我已经解决了这个问题 –
我已经添加了'self.qsort(...)+ ...'。但现在它说:'TypeError:'set'object has no attribute'__getitem __'' – VeilEclipse