package inicio;
import [Link];
public class Main
{
public static void main(String[] args)
{
int n;
[Link]("Teclea numero de elementos");
n = [Link]([Link]("Ingrese el numero de
elementos:"));
String[] nom = new String[n];
String[] numEmp = new String[n];
double[] sueldo = new double[n];
cargarArreglos(numEmp, nom, sueldo);
[Link](mostrarArreglos(numEmp, nom, sueldo));
ordenaArreglos(numEmp, nom, sueldo);
[Link](mostrarArreglos(numEmp, nom, sueldo));
String Buscarempleado = [Link]("Ingrese el numero de
empleado a buscar:");
int indice = busquedaBinaria(numEmp, Buscarempleado);
if (indice != -1)
{
[Link]("Empleado encontrado: " + nom[indice] + ", sueldo: " +
sueldo[indice]);
} else
{
[Link]("Empleado no encontrado");
}
}
static void cargarArreglos(String[] ne, String[] no, double[] sdo)
{
for (int i = 0; i < [Link]; i++)
{
ne[i] = [Link]("Teclea clave del trabajador");
no[i] = [Link]("Teclea nombre del trabajador " + ne[i]);
sdo[i] = [Link]([Link]("Teclea sueldo del
trabajador " + no[i]));
}
}
static String mostrarArreglos(String[] ne, String[] no, double[] sdo)
{
String s = "Datos Trabajadores\n";
for (int i = 0; i < [Link]; i++)
{
s += ne[i] + "\t" + no[i] + "\t" + sdo[i] + "\n";
}
return s;
}
static void ordenaArreglos(String[] ne, String[] no, double[] sdo)
{
String auxI;
String auxS;
double auxD;
for (int pas = 1; pas < [Link]; pas++)
{
for (int com = 1; com <= ([Link]) - pas; com++)
{
if (ne[com - 1].compareTo(ne[com]) > 0)
{
auxI = ne[com - 1];
ne[com - 1] = ne[com];
ne[com] = auxI;
auxS = no[com - 1];
no[com - 1] = no[com];
no[com] = auxS;
auxD = sdo[com - 1];
sdo[com - 1] = sdo[com];
sdo[com] = auxD;
}
}
}
}
static int busquedaBinaria(String[] numEmp, String buscar)
{
int izquierda= 0;
int derecha = [Link] - 1;
int mitad;
while (izquierda <= derecha)
{
mitad= (izquierda + derecha) / 2;
int comparacion = [Link](numEmp[mitad]);
if (comparacion == 0)
{
return mitad;
} else if (comparacion < 0) {
derecha = mitad - 1;
} else {
izquierda = mitad + 1;
}
}
return -1;
}
}