Sometimes it takes years for great technical papers to be implemented.  As 
a fun exercise to compare Java's dual-pivot (since so much work went into 
it) with the 3-pivot described in the paper:
Multi-Pivot Quicksort: Theory and Experiments 
downloaded from:
http://epubs.siam.org/doi/pdf/10.1137/1.9781611973198.6 
I wrote the 3-pivot quicksort described in the paper and for sorting 10 
million elements it was about 10% faster than Arrays.sort() and completes 
in 1 second on my 2013 computer.
Feel free to run the code if you have any doubts:

https://github.com/dmcmanam/quicksort/tree/master/src

And I wrote a quick blog post for background which also explains why I'm 
looking for languages like Go to implement this in:

https://refactoringlightly.wordpress.com/2017/11/21/multi-pivot-quicksort-aka-3-pivot-quicksort/

Any interest in working with me to write a Go version?  Some discussion & 
pair programming would be fun since so far I have only written 1 go 
algorithm - AVL trees since I was surprised to see people using LLRB in Go 
but I was guessing there is less interest in better balanced binary search 
trees.  The project would have a few steps, working on benchmarks for edge 
cases, etc.  

--David

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to