Véalo usted mismo
clase pública en bruto {
public static void main (String [] args) {
largo comienzo, parada;
int N = 123456789;
// camino 1
inicio = System.nanoTime ();
int len = String.valueOf (N) .length ();
stop = System.nanoTime ();
System.out.println (“way1 time:” + len + “” + (stop-start));
- ¿Cuál es el problema matemático más difícil que parece simple?
- ¿Cuáles son algunos problemas frecuentes con la educación matemática de pregrado?
- ¿Puedes resolver problemas matemáticos?
- ¿Suma de (ln N / i) a partir de (I = 1), hasta (I = N)?
- Cómo resolver T (n) = 2T (n / 2) + log n con el método del árbol de recurrencia
// camino 2
inicio = System.nanoTime ();
int p = 0;
mientras que (N> 0) {
N / = 10;
p ++;
}
stop = System.nanoTime ();
System.out.println (“way2 time:” + p + “” + (detener-iniciar));
}
}
/ *
salida:
way1 hora: 9 30791
way2 tiempo: 9 540
* /
Puede ejecutar el código usted mismo y verificar.
Razón:
En way1 tienes que considerar qué hacen valueOf () y length ().
String.valueOf () llama a otra función Integer.toString () que ejecuta un bucle y después de crear la cadena está llamando a otra función String.length (). Todo esto está agregando gastos generales innecesarios. Todo esto se puede hacer por way2 fácilmente.
No dudes en preguntarme cualquier cosa 🙂