我试图确定最佳的时间效率算法来完成下面描述的任务。
我有一套唱片。对于这组记录,我有连接数据,它指示来自这组记录的成对记录如何相互连接。这基本上表示一个无向图,记录是顶点,连接数据是边。
All of the records in the set have connection information (i.e. no orphan records are present; each record in the set connects to one or more other records in the set).
我希望从集合中选择任意两个记录,并且能够显示所选记录之间的所有简单路径。我所说的“简单路径”是指路径中没有重复记录的路径(即只有有限的路径)。
注意: 两个选择的记录总是不同的(即开始和结束顶点将永远不会相同; 没有循环)。
例如:
If I have the following records: A, B, C, D, E and the following represents the connections: (A,B),(A,C),(B,A),(B,D),(B,E),(B,F),(C,A),(C,E), (C,F),(D,B),(E,C),(E,F),(F,B),(F,C),(F,E) [where (A,B) means record A connects to record B]
如果我选择 B 作为我的起始记录,E 作为我的结束记录,我想通过记录连接找到所有将记录 B 连接到记录 E 的简单路径。
All paths connecting B to E: B->E B->F->E B->F->C->E B->A->C->E B->A->C->F->E
This is an example, in practice I may have sets containing hundreds of thousands of records.