Alex D Herbert created RNG-114:
----------------------------------

             Summary: Improve ListSampler shuffle algorithm to detect instances 
of RandomAccess
                 Key: RNG-114
                 URL: https://issues.apache.org/jira/browse/RNG-114
             Project: Commons RNG
          Issue Type: Improvement
          Components: sampling
    Affects Versions: 1.2
            Reporter: Alex D Herbert
            Assignee: Alex D Herbert


The ListSampler shuffle algorithm uses the input list {{set(index)}} method. If 
this runs in constant time then the algorithm is fast. If the list is not an 
instance of {{java.util.RandomAccess}} such as a LinkedList the algorithm will 
suffer from performance slowdown for large lists.

This is handled in the JDK Collections.shuffle method by detecting if the list 
is not an instance of RandomAccess. If so the list {{set(index)}} method is 
avoided and the list is traversed for update using its iterator.

Tasks:
 * Benchmark the ListSampler method verses Collections.shuffle with ArrayList 
and LinkedList
 * Update the ListSampler to have comparable performance to Collections.shuffle



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to