Liya Fan created CALCITE-4049:
---------------------------------

             Summary: Reduce the time complexity of getting shortest distances
                 Key: CALCITE-4049
                 URL: https://issues.apache.org/jira/browse/CALCITE-4049
             Project: Calcite
          Issue Type: Improvement
          Components: core
            Reporter: Liya Fan
            Assignee: Liya Fan


Currently, we have {{Graphs#makeImmutable}} to compute the shortest paths 
between all pairs of nodes. For many scenarios, however, we do not need the 
exact paths between nodes. Instead, we are only interested in the lengths of 
the shortest paths. 

To get the path length, we need to get the shortest path first, which is 
returned as a {{List}}, then we call the {{List#size()}} method. According to 
the current implementation, the returned list is of type {{ConsList}}. The time 
complexity of {{ConsList#size}} is O(n) (n is the number of vertices on the 
path), which is inefficient. 

In this issue, we revise the implementation of {{ConsList#size}} so that it 
takes O(1) time. In addition, we also give a utiltiy to get the shortest 
distances between nodes. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to