Author: marcosperanza
Date: Sun Mar 25 14:27:24 2012
New Revision: 1305050

URL: http://svn.apache.org/viewvc?rev=1305050&view=rev
Log:
Replaced unordered list with a sorted queue.

Modified:
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
    
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java?rev=1305050&r1=1305049&r2=1305050&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/DefaultSpanningTreeSourceSelector.java
 Sun Mar 25 14:27:24 2012
@@ -20,14 +20,14 @@ package org.apache.commons.graph.spannin
  */
 
 import static java.util.Collections.reverseOrder;
-import static java.util.Collections.sort;
 import static org.apache.commons.graph.CommonsGraph.findShortestPath;
 import static org.apache.commons.graph.utils.Assertions.checkNotNull;
 import static org.apache.commons.graph.utils.Assertions.checkState;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
+import java.util.PriorityQueue;
+import java.util.Queue;
 
 import org.apache.commons.graph.Graph;
 import org.apache.commons.graph.Mapper;
@@ -86,23 +86,20 @@ final class DefaultSpanningTreeSourceSel
 
         checkNotNull( weightOperations, "The Reverse-Delete algorithm cannot 
be calulated with null weight operations" );
 
-        final List<WE> sortedEdge = new ArrayList<WE>();
+        final Queue<WE> sortedEdge = new PriorityQueue<WE>( 11, reverseOrder( 
new WeightedEdgesComparator<W, WE>( weightOperations, weightedEdges ) ) );
         final List<WE> visitedEdge = new ArrayList<WE>();
 
         Iterable<WE> edges = graph.getEdges();
         for ( WE we : edges )
         {
-            sortedEdge.add( we );
+            sortedEdge.offer( we );
         }
 
-        sort( sortedEdge, reverseOrder( new WeightedEdgesComparator<W, WE>( 
weightOperations, weightedEdges ) ) );
-
         Graph<V, WE> tmpGraph = new ReverseDeleteGraph<V, WE>( graph, 
sortedEdge, visitedEdge );
 
-        for ( Iterator<WE> iterator = sortedEdge.iterator(); 
iterator.hasNext(); )
+        for ( int i = 0; i < sortedEdge.size(); i++ ) 
         {
-            WE we = iterator.next();
-            iterator.remove();
+            WE we = sortedEdge.poll();
 
             VertexPair<V> vertices = graph.getVertices( we );
 

Modified: 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java?rev=1305050&r1=1305049&r2=1305050&view=diff
==============================================================================
--- 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java
 (original)
+++ 
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/spanning/ReverseDeleteGraph.java
 Sun Mar 25 14:27:24 2012
@@ -20,6 +20,7 @@ package org.apache.commons.graph.spannin
  */
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import org.apache.commons.graph.Graph;
@@ -38,11 +39,11 @@ final class ReverseDeleteGraph<V, WE>
 
     private final Graph<V, WE> graph;
 
-    private final List<WE> sortedEdge;
+    private final Collection<WE> sortedEdge;
 
-    private final List<WE> visitedEdge;
+    private final Collection<WE> visitedEdge;
 
-    public ReverseDeleteGraph( Graph<V, WE> graph, List<WE> sortedEdge, 
List<WE> visitedEdge )
+    public ReverseDeleteGraph( Graph<V, WE> graph, Collection<WE> sortedEdge, 
Collection<WE> visitedEdge )
     {
         this.graph = graph;
         this.sortedEdge = sortedEdge;


Reply via email to