O () - нотация обычно используется для характеристики производительности при больших проблемах, при этом сознательно игнорируя постоянные коэффициенты и добавочные смещения к производительности.
Это важно, потому что постоянные факторы и накладные расходы могут сильно различаться в зависимости от процессора и между реализациями: производительность, которую вы получаете для однопоточной программы Basic на компьютере 6502, будет сильно отличаться от того же алгоритма, который реализован в программе на C, работающей на процессор Intel i7-класса. Обратите внимание, что оптимизация реализации также является фактором: внимание к деталям часто может значительно повысить производительность, даже если все остальные факторы одинаковы!
Однако постоянный коэффициент и накладные расходы все еще важны. Если ваше приложение гарантирует, что N никогда не становится очень большим, асимптотическое поведение O (N ^ 2) и O (N log N) не вступает в игру.
Вставка сортировки проста, и для небольших списков она обычно быстрее, чем сравнительно реализованная быстрая сортировка или слияние. Вот почему практическая реализация сортировки, как правило, прибегает к чему-то вроде вставки для «базового случая» вместо того, чтобы возвращаться к отдельным элементам.