Re: The new optimized version of Dual-Pivot Quicksort

2018-11-13 Thread Zheka Kozlov
Thanks, Tagir. The benchmark was indeed incorrect. There was also another mistake: dualPivot() and radix() sorted different arrays. I believe I fixed it now: https://gist.github.com/orionll/595d10ff37ffe0d8c3824e734055cf00 Benchmark (seed)(size) Mode Cnt Score Error Units

Re: The new optimized version of Dual-Pivot Quicksort

2018-11-13 Thread Tagir Valeev
Hello, Zheka! Seems that your benchmark is wrong: after the first iteration (which is part of warmup) you're always sorting an array which is already sorted, so in fact you are testing how algorithms behave on already sorted arrays. With best regards, Tagir Valeev. On Mon, Nov 12, 2018 at 10:08 A

Re: The new optimized version of Dual-Pivot Quicksort

2018-11-11 Thread Zheka Kozlov
Hi Tagir! I wrote a simple benchmark comparing Arrays.sort() and your implementation: https://gist.github.com/orionll/595d10ff37ffe0d8c3824e734055cf00 Here are the results on my computer (JDK 11): REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on why

Re: The new optimized version of Dual-Pivot Quicksort

2018-11-10 Thread Tagir Valeev
Hello! By the way why not using radix sort, at least for int[] arrays? The implementation is much simpler, it uses constant-size additional buffer (1024 ints) and performance should be better than DPQS, at least for large arrays. Here's sample implementation written by me several years ago (reusin

Re: The new optimized version of Dual-Pivot Quicksort

2018-11-09 Thread Laurent Bourgès
Hi, One more thing: if you have any advice on my code, datasets, or algorithmic approach, please give me your feedback/comments. Here is the Marlin MergeSort: http://hg.openjdk.java.net/jdk/jdk/file/190b77982361/src/java.desktop/share/classes/sun/java2d/marlin/MergeSort.java Laurent Le ven. 9 n

Re: The new optimized version of Dual-Pivot Quicksort

2018-11-08 Thread Laurent Bourgès
Hi, I am currently testing many sort algorithms to improve the Marlin renderer (AA 2D shape rasterizer), I integrated since OpenJDK9 and am still improving for OpenJDK12 . I created my MergeSort (top down, check for sorted parts, array / buffer swap to minimize moves, isort on small sub arrays) t

Re: The new optimized version of Dual-Pivot Quicksort

2018-01-24 Thread Paul Sandoz
Hi Vladimir, Thanks. Quick update for those on the list: Doug and Vladimir are doing some more detailed performance analysis. Paul. > On Jan 19, 2018, at 5:38 AM, Vladimir Yaroslavskiy wrote: > > Hi team, > > In Sept 2009 Josh Bloch, Jon Bentley and I introduced new sorting > algorithm, Dua