in reply to RFC:A brief tutorial on Perl's native sorting facilities.
How sort actually works internally doesn't really matter. That it is about as fast as you are likely to get; that it is built-in to language so always available; and that it understands Perl internals; does.is that the internals of the Perl sort changed from quicksort to a mergesort between 5.6 and 5.8. Although the main change is probably to defend against worst-case O(N**2) behaviour, the user can be bitten by this "feature" From CPAN Sort.pm
A stable sort means that for records that compare equal, the original input ordering is preserved. Mergesort is stable, quicksort is not.This means if you use 5.6, and your comparator returns 0 for 2 items that are in fact different, the input order and the output order of those items may change. This behaviour burned me recently; others may want to know about it.
|
|---|