简体   繁体   中英

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

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

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;

Well, Thinking about it you can bypass the O(n) for Integer.toString(int i) by simply adding + ""

eg

String x = 555 + "";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM