Título: Metodo quicksort en java
Publicado por: ship en 11 Noviembre 2011, 07:50 am
ayuda tengo un codigo en java de los metodos de busqueda pero me marca error al llamar este metodo en el main al pasar los parametros de quicksort alguien puede corregir mi codigo porfavor public void quicksort(int a[],int inf,int sup) { int izq,der; double pivote; izq=inf; der=sup; pivote=a[(izq+der)/2]; while(izq<der) { while(a[izq]<pivote && der<sup) izq++; while(pivote<a[der] && der>inf) der--; if(inf<der) quicksort(a,inf,der); if(izq<sup) quicksort(a,izq,sup); } } { busquedas obj=new busquedas (); do { System. out. println("Métodos de Ordenación\n"); System. out. println("----Menú---\n"); System. out. println("0._Ingresar Valores"); System. out. println("1._Burbuja"); System. out. println("2._Quick Short"); System. out. println("3._Shell"); System. out. println("4._Salir"); cad=tcld.readLine(); switch(opc) { case 0: } case 2: { System. out. print("\nMétodo Quick Short"); obj.quicksort(a,1,tam-1); //Aqui esta el error cad=tcld.readLine(); break; }
Título: Re: Metodo quicksort en java
Publicado por: BlackZeroX en 11 Noviembre 2011, 08:19 am
En donde declarasel array a? tam?... no los veo... identa tu codigo se ve horrendo asi... bueno no horrendo si no que no se puede leer acorde a la idea...
Dulces Lunas!¡.
Título: Re: Metodo quicksort en java
Publicado por: RyogiShiki en 11 Noviembre 2011, 16:24 pm
Tu código es un completo desastre! Por favor idéntalo, haz algo con las llaves que faltan, completa la aprte while del do, Sie stás trabajando con un IDE como NetBeans puedes hacer Alt+Mayus+F y el solo formatea el código. Imagino que el método quickshort pertenece a una clase llamada búsquedas, sería bueno que separaras las dos partes del código en secciones diferentes, y que nos mostraras la clase búsquedas, y por último usa las etiquetas GeSHi para poner tu código, así es más fácil leerte: (http://i56.tinypic.com/34erlw6.png)
Título: Re: Metodos en java
Publicado por: ship en 12 Noviembre 2011, 18:02 pm
ok pues verifique mi codigo modifique algunas cosas y listo ya tengo lo que necesito...funciona mi programa y pues con los demas metodos no hay problema funcionan bien, de antemano gracias. public class algoritmo { public static int i,numero,tam,opc,opc1,tmp,izq,der; public static int a[]; public void inicio(int tamaño) { tam=tamaño; a=new int[tam]; } public void lee(int i, int num) { a[i]=num; } public void escribe(int tam) { int i=0; for(i=0; i<tam;i++) { System. out. printf("["+a [i ]+"]"+""); } } public void cambio(int a[],int pos1,int pos2) { t1=a[pos1]; a[pos1]=a[pos2]; a[pos2]=t1; } public void quicksort(int a[],int b,int c) { double pivote; izq=b; der=c; pivote=a[(izq+der)/2]; i=b; j=c; do { while(a[i]<pivote)i++; while(a[j]>pivote) j--; if(i<=j) { int tmp; tmp=a[i]; a[i]=a[j]; a[j]=tmp; i++; j--; } }while (i<=j); if(b<j) quicksort(a,b,j); if(i<c) quicksort(a,i,c); } { algoritmo objeto=new algoritmo (); do { System. out. println("Métodos de Ordenación\n"); System. out. println(" Menú \n"); System. out. println("0._Digite Valores"); System. out. println("1._Quick Sort"); System. out. println("3._Salir"); cad=tcld.readLine(); switch(opc) { case 0: { System. out. print("Cuantos valores vas a Ingresar: "); cad=tcld.readLine(); objeto.inicio(tam); for (i=0;i<tam;i++) { System. out. print("Posición: "+i + "-->"); cad=tcld.readLine(); objeto.lee(i, numero); } objeto.escribe(tam); break; } case 1: { } case 2: { System. out. print("\nMétodo Quick Sort\n"); objeto.quicksort([b][u]a,0,tam-1[/u][/b]);// este era mi gran error objeto.escribe(tam); break; } default: System. out. println("Salir"); break; } } while(opc!=2); } }
|