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
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


0