grafica de Quicksort

Iniciado por mapers, 20 Septiembre 2010, 07:31 AM

0 Miembros y 1 Visitante están viendo este tema.

mapers

porque me imprime el grafico  dos veces ....................................si no llamo a paint dos veces...............

Código (java) [Seleccionar]

import java.awt.*;
import javax.swing.*;

public class LinesRectsOvals extends JFrame {


   public LinesRectsOvals()
   {
      super( "GRAFICO" );

      setSize( 500,500 );
      setVisible( true );
   }

   public void stop(int tiempo) {

try{Thread.sleep(tiempo);}catch(Exception err){}

}



   public  static void Quicksort(int A[], int b, int t)

{
     int pivote;
     if(b < t){
        pivote=colocar(A, b, t);
        Quicksort(A, b, pivote-1);
        Quicksort(A, pivote+1, t);
     }
}


  public static int colocar(int A[], int b, int t)
{
    int i;
    int pivote, valor_pivote;
    int temp;

    pivote = b;
    valor_pivote = A[pivote];
    for (i=b+1; i<=t; i++){
        if (A[i] > valor_pivote){
                 pivote++;
                temp=A[i];
                A[i]=A[pivote];
                A[pivote]=temp;

        }
    }
    temp=A[b];
    A[b]=A[pivote];
    A[pivote]=temp;
    return (int) pivote;
}





   public void paint( Graphics g )
   {
       int A[]=new int[470];
       int p=0,q=469;
      super.paint( g );
      g.setColor( Color.RED );
      g.drawLine(30,0,30,470);
       g.drawLine(30,470,500,470);
       for(int y=0;y<469;y++)
      {stop(50);
         int valor = 1 + ( int ) ( Math.random() *469 );
         A[y]=valor;
      g.setColor( Color.RED );
      g.drawLine(30+y,470,30+y,valor);
      System.out.print (" Arreglo Desordenado "+"<"+A[y]+">");
            System.out.print ("\n");
      }

       g.setColor(java.awt.Color.white);
    g.fillRect(0,0,500,500);
    g.setColor(java.awt.Color.black);
        Quicksort(A,p,q);
       for(int x=0;x<469;x++)
      {stop(50);
       
      g.setColor( Color.RED );
      g.drawLine(30+x,470,30+x,A[x]);
      System.out.print (" Arreglo Ordenado "+"<"+A[x]+">");
            System.out.print ("\n");
      }

   }
   public static void main( String args[] )
   {
      LinesRectsOvals application = new LinesRectsOvals();
      application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

}




1mpuls0

Cita de: mapers en 20 Septiembre 2010, 07:31 AM
porque me imprime el grafico  dos veces ....................................si no llamo a paint dos veces...............

:¬¬ Si no lo llamas ni una vez, sabes para que es elmetodo paint?, es como el constructor de una clase normal de Java,  :-\ este código lo hiciste tu mismo o lo bajaste :S porque has preguntado cosas un poco fáciles de distinguir en donde esta el error.
Compilé tu código y no veo ningun fallo, la primera vez que aparecen los graficos es porque el programa señala numeros desordenados, la segunda vez los muestra ordenados  :¬¬

Un saludo.
abc

mapers

si yo mismo lo hize solo que  muestra dos veces para los desordenados y dos veces para ordenados.....solo deberia mostrarese una ves por cada caso...............

1mpuls0

A mi me lo muestra bien xD, trata cambiando las dimensiones del JFrame (ancho) o trata de usar el metodo

Código (java) [Seleccionar]
repaint();

No se me ocurre nada mas  :-\
abc