Arreglar vector de menor a mayor?

Iniciado por monsefoster, 11 Noviembre 2009, 23:42 PM

0 Miembros y 1 Visitante están viendo este tema.

monsefoster

Chicos, yo de nuevo...Me pidieron que ordenara un vector de menor a mayor luego de leerlo, nunca lo habia hecho y creo que tengo la idea pero...no estoy segura? La cosa es que no se si existe algun metodo que lo haga directo, o tengo que hacerlo a mano? Habia pensado algo como esto:

public static void ordenar(int v[],int o[]) {
int x,min=v[0];
int segundo=v[0];
int t=0;
for (x=1;x<v.length;x++){
min = Math.min(min,v[x]);
}
o[t]=min;
t++;

for (x=0;x<v.length;x++){
if ((segundo>min) && (segundo<v[x])){
segundo=v[x];
o[t]=segundo;
t++;
}
}
System.out.println("t vale: "+t);
System.out.println ("segundo es:"+segundo);

for (x=0;x<o.length;x++){
System.out.print(o[x]+" ");
  System.out.println ("\n");
}
}


Como ven, v es el vector original, y O es el vector ordenado...

las lineas de System.out.println("t vale: "+t);
System.out.println ("segundo es:"+segundo);

solo son para "control" mio, ya que veo que el segundo "menor" valor no lo agarra, ni que se ejecuta la condicion del if...

pueden darme una mano?  :-[

Gracias...

P.D: Encontré un ejemplo en C# pero realmente no entendí  :-\ :-\

Leyer

super modifique tu metodo :rolleyes:
Código (java) [Seleccionar]

public static void ordenar(int array[],int arrayTemp[]) {
int n=0;
SortedSet<Integer> sortedSet = new TreeSet<Integer>();
for(int index=0;index<array.length;index++){
sortedSet.add(array[index]);
}
Iterator<Integer> s = sortedSet.iterator();
while(s.hasNext()){
arrayTemp[n]=s.next();
n++;
}
}

monsefoster

No entendi pero nada...

Encontré un codigo que es el siguiente:

                     for (x = 0; x < v.length; x++){
for (t = 0; t < v.length-1;t++){
if (v[t] > v[t+1]){
aux = v[t];
v[t] = v[t+1];
v[t+1] = aux;
}
}
}


Pero no entiendo que hicieron alli... realmente creo que nunca he entendido que hacen exactamente alli.  :(

Leyer

 :( q no entiendes acaso no te coloque un metodo q te los ordena como quieres :-\

monsefoster

Ah vale, no sabia que era un metodo...me podrias explicar lo que hiciste por favor?  :-\

Leyer

bueno use el generico treeSet y sorderSet los cuales garantizan el orden de los elementos en forma acendente o a la contraria en el metodo le agrego los elementos del array en el sorderSet este los ordena y guarda  los elementos de menor a mayor automaticamente luego leeo esos valores y los almaceno el el arrayTemp que es el nuevo array.

Saludos.

monsefoster

Gracias por responderme de nuevo...

Ya entendi tanto lo que hiciste tu, como el codigo que encontré...hice lo que mi ex prof de programacion llamaba "una corrida en frio", y así lo vi..
Gracias por su ayuda!   ;D ;D