"in" everywhere

Sean Kelly sean at invisibleduck.org
Sat Oct 9 09:52:11 PDT 2010


Andrei Alexandrescu Wrote:
> 
> In fact, guards can be put to ensure that the _expected_ (not average, 
> not best-case) complexity is O(n log n). This makes the risk of hitting 
> a worst-case scenario negligible in a principled manner.
> 
> http://en.wikipedia.org/wiki/Quicksort#Randomized_quicksort_expected_complexity
> 
> http://docs.google.com/viewer?a=v&q=cache:MdBVR26N5UsJ:www.cs.cmu.edu/afs/cs/academic/class/15451-s07/www/lecture_notes/lect0123.pdf+randomized+quicksort&hl=en&gl=us&pid=bl&srcid=ADGEESi3GTSxfHWkeb_f14H0pkbigduS94qJVc9XLQ7aPa6lPUJ5JZbggI0izFe3ogiVOJCYcVkGtdumaS9hBvrGw0-TA_yZQj2qd1-AEudKyEWEGXnO4sTwqCZL95OpFkdFHDF2WXFV&sig=AHIEtbT1R0q5RIR4rob17QUKlYVl90vXyQ
> 
> Currently std.algorithm.getPivot picks the middle of the range as the 
> pivot, but I made it modular such that it can be improved in a number of 
> ways (i.e. randomized, median-of-3, median-of-5, etc).

It would be nice if it used insertion sort for small ranges as well.  There's also a quicksort variant that partitions equal-to elements separately from less-than and greater-than values, which is faster for ranges with a lot of equal elements (and no slower for ranges without).


More information about the Digitalmars-d mailing list