Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

William Bruno

Análise de desempenho

Recommended Posts

Boa Galera...

tô com algumas dúvidas plainando aqui... mas acho que tá saindo..

 

só as otimizações q não consegui sozinho.... oque seria melhor:

2 for encaixados, ou exite alguma outra forma ?

public static void copiaMatriz( int matriz[][] )
  {
	int altura = matriz[0].length;
	int largura = matriz.length;
	int[][] copia = new int[altura][largura];
	int comp = 0, atr = 0;
	for( int i = 0; i < altura; i++ )
	{
	  for( int j = 0; j < largura; j++, comp++ )
	  {
	  copia[i][j] = matriz[i][j];
	  atr++;
	  }
	}
	System.out.println(comp+" "+atr);
  }
O objetivo é copiar uma matriz, vendo que

 

m = n;

copia a posição de memória e isso eu não posso fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa... vlw sublyer, mas tenho que evitar usar funções nativas e 'prontas' do core da linguagem, pq é um trabalho de faculdade.

Eu fiz um exemplo simples, ai clonando a matriz e tal... na verdade, no meu trabalho, tenho 4 fors encaixados..

 

por isso a dúvida, se tinha como eliminar ou otimizar de alguma forma..

Até consegui fazer outro método de percorrer a matriz sem usar 2 laços encaixados, mas com certeza ficou pior em desempenho:

public static int[][] copiaMatriz2( int matriz[][] )
  {
	int altura = matriz[0].length;
	int largura = matriz.length;
	int j = 0, i = 0, vezes = 0;
	int[][] copia = new int[altura][largura];
	while( vezes < altura*largura )
	{	  
	  copia[i][j] = matriz[i][j];
	  
	  if( j == largura -1 )
		j = 0;
	  else
		j++;
	  if( j == 0 )
		i++;
	  
	  vezes++;
	}
	return copia;
  }
ne?! huahuahuahua ficou feio..

Mas então, uma parte sensível é essa:

novo_pixel += (1/larg*alt)*pixels[k][l];
ai realizo uma média aritimética.

Seria melhor que só depois que somasse tudo, dividisse tudo no fim por 1/larg*alt, certo ? em vez de ficar dividindo em cada soma..

 

Tem alguma dica, de como melhorar desempenho de uma forma geral ? ou só se eu postasse o algoritimo com meu código ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.