Amigos he estado tratando de ordenar dos arrays con mergeSort en java pero me es imposible poder ordenarlos ya que ambos arrays tienen que ser ordenados al mismo tiempo estos son mis arreglos:
String [] Nombre = {"pedro","martha","jimena","armando","rodrigo","sergio","marilu","araceli","romulo","gladys","benito"};
int[] Edad = {18,36,14,18,55,25,66,2,14,42,6};
y me gustaria que fueran ordenados asi:
* araceli 2
* benito 6
* jimena 14
* romulo 14
* pedro 18
* armando 18
* sergio 25
* martha 36
* gladys 42
* rodrigo 55
* marilu 66
Este es mi codigo que me ayuda a ordenar los enteros pero no puedo hacer que tambien el array Nombre se mueva con el Array Edad
public class mergeSort {
static private String [] Nombre = {"pedro","martha","jimena","armando","rodrigo","sergio","marilu","araceli","romulo","gladys","benito"};
static private int[] Edad = {18,36,14,18,55,25,66,2,14,42,6};
static private int tam = 11;
public static void inicio( int edad[ ]){
int tmp[] = new int[ edad.length ];
asignacion( edad, tmp, 0, edad.length - 1 );
}
private static void asignacion( int edad[ ], int tmp[],int left, int right ){
if( left < right )
{
int center = ( left + right ) / 2;
asignacion( edad, tmp, left, center );
asignacion( edad, tmp, center + 1, right );
mezcla( edad, tmp, left, center + 1, right );
}
}
private static void mezcla( int edad[ ],int tmp[],int leftPos, int rightPos, int rightEnd){
int leftEnd = rightPos - 1;
int tmpPos = leftPos;
int numElements = rightEnd - leftPos + 1;
String [] tem= new String[tam];
// Main loop
while( leftPos <= leftEnd && rightPos <= rightEnd ){
if( edad[ leftPos ]<( edad[ rightPos ] ) ){ // aqui es donde compara
tmp[ tmpPos++ ] = edad[ leftPos++ ];
}
else{
tmp[ tmpPos++ ] = edad[ rightPos++ ];
}
}
while( leftPos <= leftEnd ){ // Copy rest of first half
tmp[ tmpPos++ ] = edad[ leftPos++ ];
}
while( rightPos <= rightEnd ){ // Copy rest of right half
tmp[ tmpPos++ ] = edad[ rightPos++ ];
}
// Copy TmpArray back
for( int i = 0; i < numElements; i++, rightEnd-- ){
edad[ rightEnd ] = tmp[ rightEnd ];
}
}
public static void main(String args[]){
inicio(Edad);
System.out.println("Arreglo ordenado: \n");
for (int i=0;i < tam;i++){ //Este bucle imprime el contenido del array
System.out.print(Edad[i]+"\n");
}//fin del for
}//fin del main
/* ME GUSTARIA QUE IMPRIMIERA ESTO:
* araceli 2
* benito 6
* jimena 14
* romulo 14
* pedro 18
* armando 18
* sergio 25
* martha 36
* gladys 42
* rodrigo 55
* marilu 66
*/
}//class MergeSort