Programación General > Java
seleccion recursiva
(1/1)
kas09013:
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
alexg88:
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 --- public static int 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{return 0;}}
kas09013:
:) graciass ya me salio
kas09013:
ya lo encontre :) fiinn de seleccion recursiva
Navegación
Ir a la versión completa