В некоторых случаях лучшим вариантом является O (n), но это, вероятно, потому, что коллекция элементов уже отсортирована.Вы смотрите на O (n log n) в среднем для некоторых из лучших.
С учетом сказанного, Wiki по алгоритмам сортировки довольно хорош.Есть таблица, в которой сравниваются популярные алгоритмы с указанием их сложности, требований к памяти (с указанием того, может ли алгоритм быть «на месте») и оставляют ли они элементы с одинаковыми значениями в их первоначальном порядке («стабильность»).
Вот немного более интересный взгляд на производительность, предоставленный этой таблицей (из вышеупомянутой вики):
Некоторые из них, очевидно, будет легче реализовать, чем другие, но я предполагаю, что те, которые стоит реализовать, уже были сделаны в библиотеке по вашему выбору.