Я вот тут недавно опять копался в алгоритмах сортировки, и каждый раз меня поражает, насколько выбор правильной сортировки может повлиять на производительность. Казалось бы, ну сортнули и сортнули, но когда речь идет о больших объемах данных, разница между, скажем, быстрой сортировкой и сортировкой пузырьком — это небо и земля.
Вот, например, работая над одним проектом, я столкнулся с необходимостью сортировать очень большой список объектов по нескольким ключам. Сначала попробовал обычный QuickSort, но он на некоторых тестовых данных показывал не лучшие результаты. Пришлось углубляться, изучать вариации, оптимизации.
В итоге, после нескольких дней экспериментов и поиска, пришел к выводу, что для моей конкретной задачи лучше всего подходит Timsort. Да, он сложнее в реализации, но вот прирост скорости был просто колоссальным. Это реально доказывает, что не стоит недооценивать тонкости алгоритмов
А вы как подходите к выбору алгоритма сортировки? На что ориентируетесь в первую очередь? Имхо, иногда стоит заморочиться поиском оптимального решения, а не использовать первое попавшееся.
