Какова эффективность метода .toUpperCase javascript?

1

Итак, это похоже на супер базовый вопрос, но мне интересно, что javascript, встроенный в.toUpperCase() method-, - это эффективность времени O (n) или O (1)?

Я всегда считал, что это будет постоянное время, но теперь, когда я думаю об этом... "под капотом", не нужно ли этому методу проходить через каждого персонажа, чтобы проверить, является ли он нижним регистром один за другим? (поэтому делает его O (n)

  • 1
    Да, внутренне строки должны обрабатываться по одному символу за раз (на самом деле одна кодовая точка).
  • 0
    О (n), вы должны пройти через символы и манипулировать ими. Также обратите внимание, что toUpperCase () делает Immutable, поэтому он возвращает копию строки ... Итак, снова O (n)
Показать ещё 6 комментариев
Теги:
performance
algorithm
big-o

1 ответ

1

Алгоритм, описанный в String.prototype.toLowerCase( ) спецификации, равен O (n). Каждый код исходной строки (или строковое представление исходного объекта) копируется и преобразуется в новый код.

Тот факт, что toUpperCase и toLowerCase возвращают новые строки (поскольку строки JavaScript неизменяемы) достаточно, чтобы убедиться, что операция занимает линейное время, а не константа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню