Hola,
Pues bueno, en mi opinión personal, si tu dices que no se produce un ciclo infinito en el ciclo for que marqué en rojo, por que la variable i nunca cambia de valor, y la condición dice que se repita mientras i == 0, como puedo contradecirte.
Cita:
Iniciado por Aleinshir ... Con respecto a eso, el array es de 12x12 de forma que aun si escribe escribiria en un area reservada ...
Lo cual solo me indica que no estás seguro si escribe en o no fuera del arreglo.
Te expreso solamente mi opinión personal, aunque todavía sigo con la duda del cual es tu pregunta realmente.
¿Quieres optimizarlo? Ya te indique el el try/catch está consumiendo aproximadamente 50% del tiempo, si lo quitas posiblemente el código va a ser mas rápido. Una vez estés seguro de que no suceden excepciones en ese código puedes pasar a optimizar otras cosas.
¿Quieres saber si C es mas rápido que Java? Positivamente, en la mayoría de los casos C va a ser mas rápido que Java porque no es lo mismo, ni hacen lo mismo. En tu código en lenguaje C no hay validación si se salió fuera del rango permitido en la matriz, en Java si verifica eso, el índice fuera del rango.
Pero no creas que Java va a ser demasiado lento en comparación con C, simplemente tu código no es el mejor ejemplo para esta comparación, ni lo mas mínimo, donde evidentemente tuviste que subirle el tamaño a la matriz en C porque no estabas seguro si los índices se salían del rango o no, mientras que en Java te muestra claramente que sí se sale (si le pones un print en el catch).
En lo personal, me encanta el lenguaje C pero nunca voy a compararlo con Java, con el lenguaje C estás manipulando el procesador y la memoria casi directamente, mientras que Java hace mucho mas que simplemente eso.
Esa es simplemente mi opinión al respecto,
Saludos,