Skip to content
Advertisement

Integer.parseInt() and Integer.toString() runtime

Would the runtime of Integer.parseInt(String i) and Integer.toString(int i) both be O(n)?

Advertisement

Answer

Yes both of them Integer.parseInt("1000") and Integer.toString(1000) have time complexity O(N)

  • The internal code of Integer.parseInt("1000") reads the the strings char by char and covert to decimal in while loop

  • The internal code of Integer.toString(1000) reads the integers and convert every digit to char and stores in byte[] buf then creates new string from the byte array

Here is the code of Integer.parseInt():

int i = 0, len = s.length();
int limit = -Integer.MAX_VALUE;
// some checks
int multmin = limit / radix;
int result = 0;
while (i < len) {
    // Accumulating negatively avoids surprises near MAX_VALUE
    int digit = Character.digit(s.charAt(i++), radix);
    if (digit < 0 || result < multmin) {
        throw NumberFormatException.forInputString(s, radix);
    }
    result *= radix;
    if (result < limit + digit) {
        throw NumberFormatException.forInputString(s, radix);
    }
    result -= digit;
}
return negative ? result : -result;
4 People found this is helpful
Advertisement