elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Quicksort
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Quicksort  (Leído 3,726 veces)
mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
Quicksort
« en: 20 Septiembre 2010, 06:31 am »

me sale un error pero no lo encuentro donde me lo podrian revisar porfavor


Código
  1. public class Arreglo
  2. {
  3.  
  4.  
  5.   public  void Quicksort(int A[], int b, int t)
  6.  
  7. {
  8.     int pivote;
  9.     if(b < t){
  10.        pivote=colocar(A, b, t);
  11.        Quicksort(A, b, pivote-1);
  12.        Quicksort(A, pivote+1, t);
  13.     }
  14. }
  15.  
  16.  
  17.  public int colocar(int A[], int b, int t)
  18. {
  19.    int i;
  20.    int pivote, valor_pivote;
  21.    int temp;
  22.  
  23.    pivote = b;
  24.    valor_pivote = A[pivote];
  25.    for (i=b+1; i<=t; i++){
  26.        if (A[i] > valor_pivote){
  27.                 pivote++;
  28.                temp=A[i];
  29.                A[i]=A[pivote];
  30.                A[pivote]=temp;
  31.  
  32.        }
  33.    }
  34.    temp=A[b];
  35.    A[b]=A[pivote];
  36.    A[pivote]=temp;
  37.    return (int) pivote;
  38. }
  39.  
  40.  
  41.  
  42.  
  43.  
  44.   public static void main(String[] args)
  45.    {
  46.       int j=0,n=0,p=0,q=121;
  47.       int A[]=new int[121];
  48.       p=0;//primer valor inicial//
  49.  
  50.     for(int i=0;i<120;i++)
  51.        {
  52.            int valor = 1 + ( int ) ( Math.random() * 469 );
  53.  
  54.            A[i]=valor;
  55.  
  56.        }
  57.  
  58.  
  59.  
  60.   Quicksort(A,p,q);
  61.  
  62.              for(j=0;j<120;j++)
  63.                     {
  64.                 System.out.print ("<"+A[j]+">");
  65.                    }
  66.   }
  67.  
  68.  
  69. }
  70.  
  71.  
  72.  


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Quicksort
« Respuesta #1 en: 20 Septiembre 2010, 06:54 am »

En qué línea o parte del código te marca el error?? :S

me parece que tus metodos Quicksort y colocar deben ser static, no sé si ese sea el error, tal vez si indicas la parte donde te marca el error podriamos ayudarte.

Un saludo.


En línea

abc
mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
Re: Quicksort
« Respuesta #2 en: 20 Septiembre 2010, 06:57 am »

justo hay  en  
Código:
Quicksort(A,p,q);

si men teniaz razon ese era el error pero pork  .....me podrias explicar mmmm
« Última modificación: 20 Septiembre 2010, 07:01 am por mapers » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Quicksort
« Respuesta #3 en: 20 Septiembre 2010, 07:01 am »

No soy muy bueno explicando pero a ver que tal.

Las clases tienen variables, cada vez que instancias la clase, esas variables se crean para cada instancia,
lo mismo con los métodos si tienes una clase con la variable entera x, cada instancia de esa clase tendrá dentro una variable entera x, cierto? Lo mismo con los métodos.

Ahora, lo que hace el modificador static es que ya sea una variable o un método este se cree SOLO UNA VEZ para TODAS las instancias de esa clase, es decir que si la variable x cambia de valor... Todas las instancias podrán ver este cambio, porque esta variable es única para todas las instancias y le pertenece a todas.

Lo mismo con los métodos, si un método es estático. Este es único para la clase, no importa cuántas instancias de la clase haya, todas las instancias compartirán el mismo método, porque es static.
Entonces... Las variables normales.. Son variables de instancia... y las variables static se llaman variables de CLASE.

Ahora... Si desde un método static intentas invocar a un método "normal", no se puede, porque si tienes 40 instancias... a cual método de todas las instancias estas llamando? es como una cosa de uno a muchos...
Los métodos y variables static pueden ser invocados sin necesidad de instanciar la clase

Si no quieres que tu método Quicksort NO sea static, desde el main llama al constructor y desde el contructor llama al método Quickstatic, por ejemplo

Código
  1. public static void main(String args[]){
  2. new Arreglo(); //Constructor
  3. }
  4.  
  5. public Arreglo(){
  6. Quicksort(A,p,q);
  7. }
  8.  

Espero haberme explicado.

Un saludo.

PD. perdon por las faltas ortográficas, tengo flojera de escribir xD

« Última modificación: 20 Septiembre 2010, 07:44 am por Darhius » En línea

abc
mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
Re: Quicksort
« Respuesta #4 en: 20 Septiembre 2010, 07:16 am »

no ya no men p´s  si me corre bien gracias pero te mencionaba que porque   me tiraba error hay mmm
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con ordenamiento quicksort
Programación C/C++
Blaster 3 2,513 Último mensaje 13 Abril 2013, 22:33 pm
por leosansan
[Aporte] explicacion del funcionamiento de Quicksort
Programación C/C++
Blaster 1 2,736 Último mensaje 20 Abril 2013, 02:00 am
por 85
C++ - Problema con implementación del QuickSort. « 1 2 »
Programación C/C++
xaps 10 4,818 Último mensaje 1 Abril 2014, 22:16 pm
por xaps
[Métodos de ordenamiento] QuickSort [C++]
Programación C/C++
2Fac3R 0 2,437 Último mensaje 29 Julio 2015, 20:47 pm
por 2Fac3R
Explicación quicksort usando recursividad
PHP
Giankaa 2 2,331 Último mensaje 7 Junio 2016, 03:36 am
por Giankaa
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines