Это правильно, даже если конкатенация строк не была оптимизирована компилятором.
Но, как отметил kaya3, каждый ввод, который вы даете этому алгоритму, может иметь не более 10 (десятичных) цифр, что означает n в любом случае может быть не более 10. Принимая это во внимание, время выполнения фактически находится в O (1), поскольку вы можете априори определить верхнюю границу для числа элементарных операций, которые будет выполнять этот алгоритм.
Если аргумент был BigInteger
анализ во время выполнения станет более значимым. Тогда вам также придется подумать о том, сколько времени займет сравнение или Integer.valueOf(string)
(точнее, BigInteger
эквивалент new BigInteger(string)
). Последнее, вероятно, в O (n ^ 2), если вы дадите ему ввод с n цифрами, что означает, что весь алгоритм будет работать в O (n ^ 4).