Está en la página 1de 5

Universidad Nacional de San Martín –

Tarapoto
Facultad de Ingeniería de Sistemas e Informática

Escuela profesional de Ingeniería de Sistemas e Informática

Tema:

Búsqueda Binaria

Alumnos:

Maurizio Arévalo Rojas

Gael Edu Yaicate Vásquez

Profesor:

Ing. M. Sc. Humberto Valdera Rodríguez

Curso:

Estructura de datos

TARAPOTO

2022-II
Análisis
Buscar: dato=4 en la siguiente lista:

A 4 6 8 10 12 14 16
i (1) (2) (3) (4) (5) (6) (7)
c = entero((p + u)/2)
¿dato = A(c)?
¿4 = 10?
¿dato > A(c)?
¿ 4 > 10?

Actualizamos: u =c -1
u =4 - 1 =3

A 4 6 8 10 12 14 16
i (1) (2) (3) (4) (5) (6) (7)

c = entero((p + u)/2)
¿dato = A(c)?
¿4 = 6?
¿dato > A(c)?
¿4 > 6?

Actualizamos: U =c -1
U =2 - 1 =1

A 4 6 8 10 12 14 16
i (1) (2) (3) (4) (5) (6) (7)
c = entero((p + u)/2)
¿dato = A(c)?
¿4 = 4?
U= 1
Dato encontrado
DDF:
PRUEBA DE ESCRITORIO:
CODIGO JAVA

//Busqueda binaria
import java.util.Scanner;
public class BusquedaBinaria
{
public static void main (String [] args)
{
Scanner leer = new Scanner (System.in);
System.out.print("Ingresa longitud del vector: ");
int n = leer.nextInt();
int A[] = new int[n];
for (int i = 0; i<n; i++)
{
System.out.print("Ingresar datos: ");

A[i]= leer.nextInt();
}
System.out.print("Ingrese dato a encontrar: ");
int valor = leer.nextInt();
int p = 0;
int u = n - 1;
int c =(p + u)%2;
if(valor!= A[c])
{
do
{
if (valor>A[c])
{
p = c + 1;
c = (p + u) % 2;
}
else
{
u = c - 1;
c = (p + u) % 2;
}
}
while(valor!=A[c] && u >= p);
if(u>=p)
{
System.out.print("Dato encontrado");
}
else
{
System.out.print("Dato no encontrado");
}
}
else
{
System.out.print("Dato encontrado");
}
}
}

También podría gustarte