Jump to content

Ayuda programacion java


Recommended Posts

Hola buenas .... mi consulta o mas bien necesidad de ayuda es la siguiente: Tengo que ordenar una matriz (Lenguaje Java ) de n*m de enteros de menor a mayor PERO sin usar algun metodo ya conocido, sin usar variables auxiliares ni nada .... y con la condicion que solo se pueden intercambiar posiciones contiguas, por lo tanto supongamos en la matriz

 

3 4 5

1 2 3

 

el numero 3 puedo intercambiarlo solo con el 1 o con el 4 , y el 5 NO puedo cambiarlo por el 1 sino que solo con el 3 o 4 .

 

hasta ahora tengo esto pero no me esta ordenando como corresponde:

 

public static void swap(int i, int j, int x, int y){
matriz[j]=matriz[j]+matriz[x][y];
matriz[x][y]=matriz[j]-matriz[x][y];
matriz[j]=matriz[j]-matriz[x][y];
} // Metodo que cambia las posiciones sin usar variable aux
for(int j=0;j<matriz.length;j++){
for(int i=0;i<matriz.length;i++){
if(j<matriz.length-1 && matriz[j]>matriz[j+1]){
swap(i,j,i,j+1);
}
if(i<matriz.length-1 && matriz[j]>matriz[i+1][j]){
swap(i,j,i+1,j);
}
if(j>=1 && matriz[j]<matriz[j-1]){
swap(i,j,i,j-1);
if(i>=1 && matriz[j]<matriz[i-1][j]){
swap(i,j,i-1,j);
}
}
}
} // Ciclos para cambiar las posiciones (Aca esta el error)
Bueno si no seria mucha la molestia el que pueda o sepa que me diga porfa aunque sea una ayudita alguna :) eso muchas gracias por su tiempo :)

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...