Sunteți pe pagina 1din 4

DIRECCIN GENERAL DE EDUCACIN SUPERIOR TECNOLGICA

Instituto Tecnolgico de Pachuca

Estructura de Datos
UNIDAD VI
BUSQUEDAS
PRESENTA:
GONZALEZ ESCOBAR VICENTE DE
JESUS
MENDOZA ESPINOSA ALEJANDRO
Catedrtico:
ING. HERNANDEZ PEREZ ROBERTO

Pachuca de Soto, Hgo. Diciembre de 2014

Bsqueda Binaria
La bsqueda binaria consiste en dividir el arreglo por su elemento medio en dos
subarreglos ms pequeos, y comparar el elemento con el del centro. Si
coinciden, la bsqueda se termina. Si el elemento es menor, debe estar (si est)
en el primer subarreglos, y si es mayor est en el segundo.
public class BBinaria {
int max = 5;
int v[] = new int [max];
public static void main(String[] args) {
// TODO Auto-generated method stub
BBinaria o = new BBinaria();
System.out.print("Arreglo: ");
o.imprimir();
System.out.println();
int key = 1;
if(o.binaria(key)!=-1)
System.out.println("Elemento "+key+" encontrado en la pos: " +
o.binaria(key));
else
System.out.println("Elemento "+key+" no encontrado.");
}
BBinaria(){
v[0] = 7;
v[1] = 3;
v[2] = 2;
v[3] = 8;
v[4] = 5;
}
int binaria(int key){
int centro,inf=0,sup=max-1;
while(inf<=sup){
centro=(sup+inf)/2;
if(v[centro]==key)
return centro;
else
if(key< v[centro] ){
sup=centro-1;
}
else {
inf=centro+1;
}
}
return -1;
}
void imprimir(){
for(int i = 0; i<max; i++){
System.out.print(v[i] +", ");
}
}
}

Bsqueda Secuencial
Este tipo de bsqueda compara cada elemento del vector con el valor a encontrar
hasta que este se consiga o se termine de leer el vector completo.

public class BSecuencial {


int max = 5;
int v[] = new int [max];
public static void main(String[] args) {
// TODO Auto-generated method stub
BSecuencial o = new BSecuencial();
System.out.print("Arreglo: ");
o.imprimir();
System.out.println("\n" + o.secuencial(5));
}
BSecuencial(){
v[0] = 7;
v[1] = 3;
v[2] = 2;
v[3] = 8;
v[4] = 5;
}
String secuencial(int key){
String r ="";
int aux =0;
boolean bus = false;
while(aux<max&&!bus){
if(v[aux]==key)
bus = true;
else
aux++;
}
if(bus)
r = "Elemento "+key+" encontrado en la pos: " + aux;
else
r = "Elemento "+key+" no encontrado.";
return r;
}
void imprimir(){
for(int i = 0; i<max; i++){
System.out.print(v[i] +", ");
}
}
}

Bsqueda Secuencial 2
Este mtodo realiza lo mismo que el anterior solo que este tiene un arreglo
ordenado que facilita el trabajo.
public class BSecuencial2 {
int max = 5;
int v[] = new int [max];
public static void main(String[] args) {
// TODO Auto-generated method stub
BSecuencial2 o = new BSecuencial2();
System.out.print("Arreglo: ");
o.imprimir();
System.out.println("\n" + o.secuencial(8));
}
BSecuencial2(){
v[0] = 2;
v[1] = 3;
v[2] = 5;
v[3] = 7;
v[4] = 8;
}
String secuencial(int key){
String r ="";
int aux =0;
boolean bus = false;
while((aux<max&&!bus)||key<v[aux]){
System.out.print(aux);
if(v[aux]==key)
bus = true;
else
aux++;
}
if(bus)
r = "Elemento "+key+" encontrado en la pos: " + aux;
else
r = "Elemento "+key+" no encontrado.";
return r;
}
void imprimir(){
for(int i = 0; i<max; i++){
System.out.print(v[i] +", ");
}
}
}

S-ar putea să vă placă și