Regarding implementing a stable sort for Phobos
Xinok
xinok at live.com
Tue Mar 13 09:38:51 PDT 2012
On Tuesday, 13 March 2012 at 16:04:55 UTC, deadalnix wrote:
> Le 13/03/2012 16:08, Xinok a écrit :
>> On Tuesday, 13 March 2012 at 09:32:49 UTC, deadalnix wrote:
>>> Le 13/03/2012 10:19, Xinok a écrit :
>>>> Would you mind sharing your smoothsort? I haven't
>>>> implemented one myself
>>>> and I'd love to test it out.
>>>
>>> It is on github :
>>> https://github.com/deadalnix/Dsort/blob/master/sort/smooth.d
>>
>> Thanks. I found a couple cases where it performs better, but
>> overall,
>> the overhead of the algorithm seems to be too much and most
>> other
>> algorithms performed better.
>
> smooth sort is intended to be used on semi sorted data (like
> transparent polygons on a 3D scene). Ideal to keep some data
> sorted.
>
> It also have a guarantee to run in O(n*log(n)). But qsort
> variation (like we have in phobos) is faster in the general
> case.
It only performs well if there aren't many elements to move
around. For example, I took a sorted list with 1 million
elements, and appended 64 random elements. Smoothsort was the
second slowest, only marginally beating heap sort. My natural
merge sort was 27x faster.
More information about the Digitalmars-d
mailing list