Big O нотация о том, как характеристики алгоритма (время, использованное в памяти, использование памяти, время обработки) растут с ростом проблемы.
Постоянные факторы отбрасываются, потому что они не влияют на как значение масштабируется.
Незначительные термины также отбрасываются, потому что в итоге они почти не действуют.
Итак, ваше исходное уравнение
sqrt(31n + 12nlogn + 57)
сразу упрощается до
sqrt(n log n)
Квадратные корни распределяются, как и другие виды умножения и деления, так что это может быть легко преобразовано в:
sqrt(n) sqrt(log n)
Поскольку журналы преобразуют умножение в сложение (вот почему работают правила слайдов), это становится:
sqrt(n) log (n/2)
Опять же, мы отбрасываем константы, потому что нас интересует класс поведения
sqrt(n) log n
И у нас есть ответ.
Обновление
Как правильно было указано,
sqrt(n) sqrt(log n)
не становится
sqrt(n) log (n/2)
Так что конец моего происхождения неверен.