Java - no se como implementar quicksort

 
Vista:
Imágen de perfil de Andrea

no se como implementar quicksort

Publicado por Andrea (16 intervenciones) el 25/04/2016 08:55:09
Hola, buenas noches, espero que alguien me pueda ayudar, tengo que que utilizar quicksort en un programa en la que pida, nombre , id, y sueldo con la clase empleado, el cual se ordenara por medio de la id pero no se como implementar quicksort.
Ya hice el programa basico que pide los datos, alguien me puede ayudar con quicksort?

Principal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
empleado a[]=new empleado[1];
 
        String nombre;
        int sueldo;
        int id;
 
        for(int i=0;i<a.length;i++){
            System.out.println("Ingrese nombre");
            nombre=entrada.readLine();
            System.out.println("Ingese id");
            id=Integer.parseInt(entrada.readLine());
            System.out.println("ingrse el sueldo");
            sueldo=Integer.parseInt(entrada.readLine());
 
            a[i]=new empleado(nombre, id,sueldo);
        }
        System.out.println("Id"+ "  |  "  + "Nombre" + "  |  "+"Sueldo");
	for(int i=0;i<a.length;i++){
 
            System.out.println(a[i].getId()+"   "+a[i].getNombre()+"   "+a[i].getSueldo());
        }
    }
}


Clase empleado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package quicksort;
 
public class empleado {
   //  int id;
    //rivate String nombre;
     //int sueldo;
    private int id;
    private String nombre;
    private int sueldo;
 
    public empleado(String nombre, int id, int sueldo) {
        this.id = id;
        this.nombre = nombre;
        this.sueldo = sueldo;
    }
 
    public empleado() {
        nombre="";
        id=0;
        sueldo=0;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public  String getNombre() {
        return nombre;
    }
 
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
    public int getSueldo() {
        return sueldo;
    }
 
    public void setSueldo(int sueldo) {
        this.sueldo = sueldo;
    }
 
 
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

no se como implementar quicksort

Publicado por GRiav (2 intervenciones) el 11/05/2018 16:55:13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static void quicksort(int A[], int izq, int der) {
 
  int pivote=A[izq]; // tomamos primer elemento como pivote
  int i=izq; // i realiza la búsqueda de izquierda a derecha
  int j=der; // j realiza la búsqueda de derecha a izquierda
  int aux;
 
  while(i<j){            // mientras no se crucen las búsquedas
     while(A[i]<=pivote && i<j) i++; // busca elemento mayor que pivote
     while(A[j]>pivote) j--;         // busca elemento menor que pivote
     if (i<j) {                      // si no se han cruzado
         aux= A[i];                  // los intercambia
         A[i]=A[j];
         A[j]=aux;
     }
   }
   A[izq]=A[j]; // se coloca el pivote en su lugar de forma que tendremos
   A[j]=pivote; // los menores a su izquierda y los mayores a su derecha
   if(izq<j-1)
      quicksort(A,izq,j-1); // ordenamos subarray izquierdo
   if(j+1 <der)
      quicksort(A,j+1,der);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar