Optimisation de code

Optimisation de code - Java - Programmation

Marsh Posté le 23-05-2008 à 15:12:25    

Bonjour, je travaille actuellement sur un projet de seam carving en java.
Mon problème est le suivant:
Je souhaite rendre mon code plus performant, à l'heure actuelle, j'utilise une matrice d'entiers (int [][]).
Les opérations que j'effectue sur cette structure sont :
 
suppression de case horizontale

Code :
  1. public void supPixelSCH (int x, int y){
  2.      for(int i = x; i<this.largeur-1;i++){
  3.       this.matrice[i][y]=this.matrice[i+1][y];
  4.      }
  5.     }

suppression de case verticale

Code :
  1. public void supPixelSCV (int x, int y){
  2.      for(int i = y; i<this.hauteur-1;i++){
  3.       this.matrice[x][i]=this.matrice[x][i+1];
  4.      }
  5.     }

Je souhaite aussi pouvoir accéder à une "case" directement à partir d'une autre.  
Exemple case en haut à droite...
Quelqu'un peut -il me proposer une structure satisfaisante s'il vous plait?
Merci d'avance


Message édité par Tarcaye le 23-05-2008 à 15:14:05
Reply

Marsh Posté le 23-05-2008 à 15:12:25   

Reply

Marsh Posté le 23-05-2008 à 15:35:57    

Le premier cas tu ne peux rien faire, ça pédale parce que tu parcours une colonne (pas de localité).
 
Le deuxième, c'est mieux niveau performance, mais cil n'y a toujours rien à faire.
 
 
Tu pourrais améliorer l'opération SCV en utilisant un ArrayList<int[]>, supprimer une colonne ne reviendrait qu'à null un indince et à décaler les colonnes suivantes.
 
Reste à voir si ça a un quelconque intérêt d'optimiser ces opérations (aux détriments des autres).

Reply

Marsh Posté le 24-05-2008 à 11:53:25    

Oui , je vais essayé.  
Sinon pour le SCV je peux aussi faire un System.arraycopy.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed