Programación General => Java => Mensaje iniciado por: kas09013 en Martes 24 de Mayo de 2011, 20:12
Título: seleccion recursiva
Publicado por: kas09013 en Martes 24 de Mayo de 2011, 20:12
ayuuda por favor! estoi haciendo seleccion recursivo pero no me los ordena bien alguna idea del porque? aqui esta mi codigo: import java.io.*;//Libreria De Java Para Ingresar Datos Desde Teclado class SeleccionRecursivo2{// Nombre de La Clase public static int Seleccion(int v[], int n){ int i, minimo,l; if (n>=1) { minimo=0; for(i=1;i<n;i++) if(v<v[minimo]) minimo=i; i=v[0]; v[0]=v[minimo]; v[minimo]=i;
return Seleccion(v,n-1); }else{ return 0; } } public static void main(String args[])throws IOException{ BufferedReader res1=new BufferedReader(new InputStreamReader(System.in)); long tiempoInicio = System.currentTimeMillis(); int n; int v[]=new int [15];//Declaracion De Arreglo int res;// Declaracion De Variable System.out.println ( "n||************** Metodo De Odenacion Seleccion **************|| n|| || "); System.out.println ( "|| 1.-Cantidad De Numeros A Ordenar: ||"); System.out.print( "|| "); n=Integer.parseInt(res1.readLine());//Lee Los Datos Introducidos Desde Teclado System.out.println ( "|| 2.-Numeros A Ordenar: ||"); for (int i=0; i<n; i++){// Ciclo For Para Pedir que Indroduzca Los Valores System.out.print( "|| "); v=Integer.parseInt(res1.readLine());}// Lee y Almacena Los Datos Desde teclado En El Arreglo System.out.println("|| 3.-Ordenacion De Numeros || n"); for (int i=0; i<n; i++){//Ciclo For Para La Ordenacion de Numeros System.out.print("|"); System.out.print(v + "|"); } System.out.println(" "); res=Seleccion(v,n);//Llama All Metodo anterior Para Que Devuelva Datos long totalTiempo = System.currentTimeMillis() - tiempoInicio;// Funcion Que Mide El Tiempo Y Calcula El Tiempo Total Empleado A Partir De La Diferencia Del Tiempo Inicial Y Final System.out.println("n||El tiempo total de la ejecucion es :" + totalTiempo + " miliseg"); System.out.println ( "n||**********************************************************||");
} } //fin clase seleccion recursivo
Título: Re: seleccion recursiva
Publicado por: alexg88 en Martes 24 de Mayo de 2011, 20:57
La próxima vez pon el código entre las etiquetas de código.
El problema que tienes es que siempre le pasas el array desde el inicio hasta la posición n-1 y guardas el mínimo en la posición 0, y por eso sólo se te ordena un número.
Lo mejor es que utilices el máximo.
Código: Java
publicstaticint Seleccion(int v[], int n){
int i, maximo,l;
if(n>=1){
maximo=0;
for(i=1;i<n;i++)
if(v[i]>v[maximo])
maximo=i;
i=v[n-1];
v[n-1]=v[maximo];
v[maximo]=i;
return Seleccion(v,n-1);
}else{
return0;
}
}
Título: Re: seleccion recursiva
Publicado por: kas09013 en Martes 24 de Mayo de 2011, 22:49
:) graciass ya me salio
Título: Re: seleccion recursiva
Publicado por: kas09013 en Martes 24 de Mayo de 2011, 23:07