Esto es una aplicación que crea una matriz de tamanno x tamanno (en este ejemplo, he puesto 6x6), y calcula su respectivo determinante a base de llamar a un algoritmo recursivo que se va llamando a si mismo hasta llegar a una matriz de 2x2.
Dejo el código fuente.
Determinante.java
class Determinante
{
 public static void main(String args[])
 {
  int tamanno = 6, i, j;
  int matriz[][] = new int[tamanno][tamanno];
  for (i=0;i<tamanno;i++)
  {
   for (j=0;j<tamanno;j++)
   {
    matriz[i][j] = (int)(Math.random()*10)-5;
   }
  }
  printmat(matriz);
  System.out.println(determin(matriz));
 }
 public static void printmat(int matriz[][])
 {
  int i, j;
  for (i=0;i<matriz.length;i++)
  {
   for (j=0;j<matriz.length;j++)
    System.out.print(String.valueOf(matriz[i][j]) + "\t");
   System.out.println();
  }
  System.out.println();
 }
 public static int[][] submatrize(int matriz[][], int x, int y)
 {
  int submatriz[][] = new int[matriz.length-1][matriz.length-1];
  int i, j, cur_x=0, cur_y=0;
  for (i=0;i<matriz.length;i++)
  {
   if (i != x)
   {
    cur_y=0;
    for (j=0;j<matriz.length;j++)
    {
     if (j != y)
     {
      submatriz[cur_x][cur_y] = matriz[i][j];
      cur_y++;
     }
    }
    cur_x++;
   }
  }
  return submatriz;
 }
 public static int determin(int matriz[][])
 {
  int deter=0;
  int i, mult = 1;
  if (matriz.length > 2)
  {
   for (i=0;i<matriz.length;i++)
   {
    deter += mult * matriz[i][0] * determin(submatrize(matriz,i,0));
    mult *= -1;
   }
   return deter;
  }else
   return matriz[0][0] * matriz[1][1] - matriz[0][1] * matriz[1][0];
 }
}Resultados:
5x5
run:
-3        -4        -1        -4        -5        1        
-2        -5        -4        1        -4        -3        
0        0        -3        -3        2        -4        
1        1        0        -4        -3        0        
4        -2        -3        -4        2        2        
0        3        -2        4        3        -4        
9756
BUILD SUCCESSFUL (total time: 0 seconds)
10x10
run:
-5        -3        0        -2        4        -5        0        -2        3        -5        
1        3        -3        1        2        2        -1        0        -4        -4        
-5        -5        3        0        1        -4        3        4        -1        2        
-1        2        -4        -1        4        -2        -3        3        -2        2        
1        -3        -1        1        -1        -2        -4        1        0        1        
2        2        1        1        3        1        3        -5        -4        -1        
3        -3        -4        1        -3        4        1        4        -2        -2        
-5        -5        2        -5        1        -1        1        -3        -5        3        
1        -4        -4        2        -5        -5        1        4        3        4        
0        -5        -3        -5        2        1        -1        -1        -3        -4        
71736511
BUILD SUCCESSFUL (total time: 2 seconds)A partir de ahi los tiempos de ejecución se disparan

