Java - Problema con Ordenación y Búsqueda

 
Vista:

Problema con Ordenación y Búsqueda

Publicado por Fernando (1 intervención) el 11/10/2014 18:24:36
Buen día tuve un examen en el cual no me fue nada bien teníamos que hacer un programa en el cual pudiéramos dar de alta a varios empleados y ordenarlos por el método de baraja y por el método de quick sort después teníamos que usar el método de búsqueda binario para encontrarlos y esto es lo que hice.

P.D. nunca e sido buen programador y me cuesta trabajo todos sus consejos me srvirian gracias

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import java.io.*;
 
public class empleados{
	public static String arr[]= new String [7];
	public static InputStreamReader isr = new InputStreamReader(System.in);
	public static BufferedReader tcld = new BufferedReader(isr);
 
	public static void main(String [] args) throws Exception {
		int opc;
 
	do {
			System.out.println("Menu Principal  "  );
			System.out.println("1.Alta:  "  );
			System.out.println("2.Ordenacion por Insercion:  "  );
			System.out.println("3.Ordenacion Shell:  "  );
			System.out.println("4.Consultar:   "  );
			System.out.println("5.Salir  "  );
			System.out.println("Elige una opcion:  "  );
			opc=Integer.parseInt( tcld.readLine());
		switch (opc) {
			case 1: push(); break;
		   case 2: insercion();break;
		   case 3: shell(); break;
			case 4: imprimir(); break;
		}
 
	}while (opc != 7);
 
}
 
public static void shell() {
   for ( int increment = arr.length / 2;
        increment > 0;
        increment = (increment == 2 ? 1 : (int) Math.round(increment / 2.2)))
        {
          for (int i = increment; i < arr.length; i++) {
          for (int j = i; j >= increment && arr[j - increment].compareTo(arr[j])>0 ;j -= increment) {
          String temp = arr[j];
          arr[j] = arr[j - increment];
          arr[j - increment] = temp;
         }
     }
    }
}
 
 
public static void push ()throws Exception {
 int x, clave,nom, an, sueldo, horas, porc;
  System.out.print("Proporcione los siguientes datos.  " );
for (x = 1 ; x < arr.length; x++){
  		 System.out.print("Nombre del empleado:  " );
		 arr[x] = tcld.readLine();
		 System.out.print("Genero:  " );
		 arr[x] = tcld.readLine();
		 System.out.print("Fecha de Ingreso:  " );
		 arr[x] = tcld.readLine();
		 System.out.print("Sueldo Base:  " );
		 arr[x] = tcld.readLine();
		 System.out.print("Horas trabajadas:  " );
		 arr[x] = tcld.readLine();
		 System.out.print("Porcentaje de retencion:  " );
		 arr[x] = tcld.readLine();
		 }
	}
 
 
public static void insercion() {
int i,j,posMin;
String aux;
  for (i=1; i < arr.length; i++) {
    posMin = i ;
    for (j=+1; j < arr.length -1 ; j++){
	    if(arr[posMin].compareTo(arr[j])<0){
				posMin=j;
            if(posMin!=i)
              {
                aux=new String(arr[i]);
                arr[i]=arr[posMin];
                arr[posMin]=aux;
               }
			}
       }
 }
}
 
 
public static void imprimir(){
 int x;
 	 for (x=1; x<arr.length; x++){
	 	System.out.println(" Numero: " + arr[x] );
		}
}
 
}
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