Another algo for faster  sorting
    tsbockman via Digitalmars-d 
    digitalmars-d at puremagic.com
       
    Thu Apr  7 11:15:32 PDT 2016
    
    
  
On Thursday, 7 April 2016 at 13:32:43 UTC, Andrea Fontana wrote:
> Anyway my topic about sort optimization seems not to have a 
> good luck if not for benchmark inaccuracy :)
I was planning to respond to your original question, I just 
didn't have time last night...
I don't think that the simple "counting sort" you demonstrated in 
the other thread is particularly useful to have in Phobos, by 
itself:
     - It doesn't scale well at all to higher-entropy element 
types, like `int` or `string`.
     - It only works on value types, not reference types.
     - It's so trivial to implement, that anyone who really needs 
it can write it themselves.
However, what might be really useful is to have a good generic 
implementation of "bucket sort". Using a user-supplied fast hash 
function whose output follows the same ordering as the original 
elements:
     1. Move/copy each element into a bucket list chosen by the 
hash function.
     2. Sort each individual bucket list using another algorithm.
     3. Iterate through all the buckets lists, and move/copy each 
element to the output.
With good design, it should be possible to express counting sort 
for small value types like `bool` and `byte` simply as a 
parameterization of bucket sort. (This would require that the 
bucket list type be parameterized, in addition to the hash 
function.)
    
    
More information about the Digitalmars-d
mailing list