From experience I can tell that IntroSort is fast enough. The main performance improvement usually comes from treating anything that is a managed type such as strings as Pointers - instead of three string assignments that cause a bunch of unnecessary atomic operations you then just have 3 pointer assignments. And with anything inside of IntroSort there are just swaps that can go without any reference counting.
> On 24/11/2022 19:51 CET J. Gareth Moreton via fpc-devel > <fpc-devel@lists.freepascal.org> wrote: > > > Hi everyone, > > I just need to touch on the knowledge base. What tests exist that test > the functionality of rtl/inc/sortbase.pp? As Olly suggested, I'm > looking at creating Introsort for this unit as well, but I need to know > if such a unit already exists or if I need to make my own. > > Also, since Olly mentioned that the unit is used in TStringList, it > makes me wonder if the RTL has a radix sort algorithm available, since > radix sort is on the order of O(n) and is ideal for sorting large arrays > of strings (although it can be memory-intensive). > > Kit > > _______________________________________________ > fpc-devel maillist - fpc-devel@lists.freepascal.org > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel