|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - kas09013
Páginas: [1]
1
« en: Jueves 26 de Mayo de 2011, 05:42 »
Muchisimas gracias!!! mee az salvadoo gracias!!!!!!!!
2
« en: Miércoles 25 de Mayo de 2011, 00:01 »
necesito ayuda con el programa de mergesort, si se ejecuta bien pero el que deberia ir en primera posicion lo pone en la segunda y en la primera posicion pone 0, alguna idea del porque? import java.io.*;//Libreria De Java Para Ingresar Datos Desde Teclado class Mergesort1{// Nombre de La Clase public int mergesort (int v[], int p, int q) { // Ordena el fragmento v[p..q] del vector v if (p < q) { int k = (p+q) / 2; // pto. medio del vector mergesort (v,p,k); // Ordenando la primera mitad mergesort (v,k+1,q); // Ordenando la seguda mitad combinar(v,p,k+1,q); // uniendo las dos mitades } } private void combinar(int v[], int p, int m, int q) { int combinado[] = new int[q-p+1]; int p1 = p; int p2 = m; int p3 = 0; /* combinado[0..p3-1] : cuenta los elementos ordenados de v[p..p1-1] y v[m..p2-1] */ while (p1 < m && p2 <= q) { if (v[p1] < v[p2]) { combinado[p3] = v[p1]; p1 = p1+1; }else { combinado[p3] = v[p2]; p2 = p2+1; } p3 = p3+1; } // X: (p1 == m) / (p2 = q+1) // Dels seguents bucles, nomes un d'ells s'executara alguna vegada // Es posen els elements que resten d'una taula a combinado. while (p1 < m) { combinado[p3] = v[p1]; p1 = p1+1; p3 = p3+1; } while (p2 <= q) { combinado[p3] = v[p2]; p2 = p2+1; p3 = p3+1; } // Es copia combinado (ja esta ordenat) a v for (int i=0; i < q-p+1; i++) { v[p+i] = combinado[i]; } }
3
« en: Martes 24 de Mayo de 2011, 23:08 »
gracias por tu ayudaa ya pude terminarlo
4
« en: Martes 24 de Mayo de 2011, 23:07 »
ya lo encontre fiinn de seleccion recursiva
5
« en: Martes 24 de Mayo de 2011, 22:51 »
esto de recursividad no me sale, lo eh vuelto a cambiar por que no hacia bien los cambios si lo acomodaba pero no por orden de seleccion eh cambiado el codigo pero solo me imprime el primer cambio alguna sugerencia? import java.io.*;//Libreria De Java Para Ingresar Datos Desde Teclado class SeleccionRecursivo5{// Nombre de La Clase public static int Seleccion(int v[], int n, int m){ int i=0, j, min, k, l; int cambio; if (m<n) { min=v[i];// Asignacion Del Valor En La Variable Min En El Arreglo a[i] k=0;// Asignacion De 0 A La Variable k cambio=0;//Asignacion de 0 A La Variable cambio for(j=m+1; j<n; j++)//For Para Seguir Ordenando Numeros if(v[j]<min)//If Que Compara Valor Del Arreglo a[j] Con min min=v[j];//Asignacion Del Valor De La Variable min En El Arreglo a[j] k=j;//Asigna Valor De k En j cambio=1;//A Cambio Le Asigna El valor De 1 if(cambio==1){// Comparacion Del Valor de Cambio v[k]=v[i];// Asignacion Del Valor Del arrreglo a[k] en a[i] v[i]=min;// Asignacion Del Valor Del Arreglo a[i] En La Variable Min for (l=0; l<n; l++){// For Para Imprimir La Ordenacion De Los Numeros } } return Seleccion(v,n,m+1); }else{ return 0; } } long tiempoInicio = System. currentTimeMillis(); int n,m=0; 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: ||"); 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 v [i ]=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 } res=Seleccion(v,n,m);//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||**********************************************************||"); } } //f
6
« en: Martes 24 de Mayo de 2011, 22:49 »
graciass ya me salio
7
« en: Martes 24 de Mayo de 2011, 20:46 »
ya lo hicee! pero no me los ordena bien alguna idea? 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
8
« 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
9
« en: Martes 24 de Mayo de 2011, 20:02 »
Muchas garcias! si ya ahora si corre bien , pero que cres! no hace lo que quiero creo que lo no hice bien por que no los acomoda como el ordenamiento de seleccion! o.O lo ordena como inserccion !u.U ya me estresee u.u empezzare de nuevo a crearlo si tienes un ejemplo de seleccion recursivo te lo agradeceria muucho. Sino de todas formas muchisiimas gracias
10
« en: Lunes 23 de Mayo de 2011, 06:34 »
u.U! ya no me sale el error se exception in thread main java.lang.stackover, pero ahora se me cicla, me imprime el arreglo ordenado demasiadas veces! u.u le cambie el if por un if con else y no, lo cambie por un while, y no por un do while y tampoco! :/ tienen idea de que es lo que hace mal?, u.u mi codigo quedo asi; import java.io.*;//Libreria De Java Para Ingresar Datos Desde Teclado class SeleccionRecursivo{// Nombre de La Clase public static int Seleccion(int numeros[], int k){ int aux, i=0, l,posMayor=0; do{ for(i=1; i<k;i++){
if(numeros>numeros[posMayor]){ posMayor=i; } aux=numeros[k-1]; numeros[k-1]=numeros[posMayor]; numeros[posMayor]=aux; } System.out.println(" "); for (l=0; l<k; l++){// For Para Imprimir La Ordenacion De Los Numeros System.out.print("|"); System.out.print(numeros[l] + "|"); } }while(k>1); return Seleccion(numeros, k-1);
}
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||**********************************************************||"); } }
11
« en: Lunes 23 de Mayo de 2011, 06:06 »
gracias si entendii ahorita voi a tratar de componerlo ojala q si me salga pD. uso bloc de notas
12
« en: Domingo 22 de Mayo de 2011, 04:17 »
necesito ayuda, cree el programa se seleccion en forma recursiva, pero me marca el error Exception in thread "main" java.lang.StackOverflowError at SeleccionRecursivo.Seleccion(SeleccionRecursivo.java:22), eh leido el por qe de ese error y entendi que es por que el metodo se llama asi ismo y s esta ciclando pero no se como corregirlo alguien me puede ayudar? este es el codigo : import java.io.*;//Libreria De Java Para Ingresar Datos Desde Teclado class SeleccionRecursivo{// Nombre de La Clase public static int Seleccion(int numeros[], int n){ int aux, i, l, posMayor; if(n>1){ posMayor=0; for(i=1; i<n;i++){ if(numeros>numeros[posMayor]){ posMayor=i; } aux=numeros[n-1]; numeros[n-1]=numeros[posMayor]; numeros[posMayor]=aux; } System.out.println(" "); for (l=0; l<n; l++){// For Para Imprimir La Ordenacion De Los Numeros System.out.print("|"); System.out.print(numeros[l] + "|"); } } return Seleccion(numeros, n-1);
}
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||**********************************************************||"); } }
Páginas: [1]
|
|
|