Social
Buscar
Contenido de otras web

Foro sobre Java SE > Ayuda con arreglos

Hola quisiera que me ayudaran con un problemita, tengo el siguiente arreglo

int [] x = new int [10];

en el tengo varios numeros..lo que me gustaria saber es como hacer para que me me diga en que posicion esta el valor mayor y sucesivamente. y guarde las posiciones en otro arreglo.

ej. x [ ]={1, 3, 5, 2, 8, 6, 7, 9, 4,10}

el mayor es 10 y esta en la posicion 9
entonces como hago para decirle que me guarde el valor de la posicion o indice en el arreglo y[0].

marzo 17, 2012 | Unregistered Commenterborrego

Yo creo que los que preguntas es eso
Nota el vector tiene que tener al menos un elemento

public class Problemita{
public static int posMayor(int []arreglo){
int pos = 0;
int mas = arreglo[0];
for(int i = 0; i mas){
pos = i;
mas = arreglo[i];
}
}
return pos;
}
public static void main(String []args){
int []x = {1,4,2,8,5,6,10};
int []y = new int[x.length];

int []temp = (int[])x.clone();;

for(int i = 0; i < temp.length;i++){
int pos = posMayor(temp);
y[i] = pos;
temp[pos] = -1;
}

for(int i = 0; i < x.length;i++){
System.out.print(x[i]+",");
}
System.out.println();
for(int i = 0; i < x.length;i++){
System.out.print(y[i]+",");
}
}
}

marzo 17, 2012 | Unregistered Commenterresalpa84

ahh, y deben ser enteros positivos

marzo 17, 2012 | Unregistered Commenterresalpa84

¿Podría ser algo así lo que quieres obtener?

public int[] getPositions(final int[] source) {
final int length = source.length;
final int[] positions = new int[length];
final int[] ordered = Arrays.copyOf(source, length);
Arrays.sort(ordered);
for (int i = 0; i < length; i++) {
inner:
for (int k = 0; k < length; k++) {
if (ordered[i] == source[k]) {
positions[i] = k;
break inner;
}
}
}
return positions;
}

marzo 18, 2012 | Registered Commenterchoces

Aprendo mas con las preguntas ajenas; chevere tu codigo choces

marzo 18, 2012 | Unregistered Commenterresalpa84

@resalpa

Yo también aprendo siempre alguna cosa al plantearme posible soluciones; cuando menos, sirve de "entrenamiento" ;)

He añadido un break (que se me había olvidado copiar desde mis tests en NetBeans), y un label para identificar mejor qué loop se interrumpe.

marzo 18, 2012 | Registered Commenterchoces