Site hosted by Angelfire.com: Build your free website today!


Los algoritmos de búsquedas secuenciales , nos facilita la forma de hacer consultas ya sea en una tabla de una base de datos como en un vector o matriz de datos.

Este tipo de búsqueda tiene mas puntos en contra que a favor porque en un vector de N posiciones este algoritmo va a buscar posición a posicion hasta dar con el dato solicitado y en el caso de que no exista pues también va a recorrer todo el arreglo.

Lo bueno de este tipo de busqueda es que es muy sencillo de implementar y no se tiene que ordenar el vector.


Si tenemos un vector ya definido con los siguientes datos:
["aarona","aashta","abelarda","abelia","abigail","a bril"] , todos de tipo String y queremos saber si ya existe el nombre : "Abigail" en nuestro vector entonces tenemos que hacer lo siguiente:
public class BSecuencial {
public static void main(String[] args)throws IOException {
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
int encontrados=0;
String [] VectorNombres = {"Aarona","Aashta","Abelarda","Abelia","Abigail ",
"Abril"};
System.out.print("Digite el nombre que desea buscar: ");
String nombre = entrada.readLine();
// entrada de dato a buscar
for (int i=0; i<VectorNombres.length;i++){
if(nombre.equalsIgnoreCase(VectorNombres[i])){
JOptionPane.showMessageDialog(null,"Elemento encontrado "+VectorNombres[i],"Encontrado",
JOptionPane.INFORMATION_MESSAGE);
encontrados++;
continue;
}
}
if(encontrados == 1 ){
System.out.println("Fin de busqueda, encontrado "+encontrados+" elemento igual");
}else{
System.out.println("Fin de busqueda, encontrados "+encontrados+" elementos iguales");
}
}
import java.util.*;
 class programa8
{    public static void main(String[]args)
    {
        int a[],n,n1,indice;
         Scanner sc=new Scanner(System.in);
         System.out.print("Ingresa tamaño del arreglo: ");
        n=sc.nextInt();
         a=new int[n];
         a=inicializa(n);
        muestra(a);
         System.out.print("Ingresa numero a buscar: ");
        n1=sc.nextInt();
         indice=busquedaLineal(a,n1);
        if(indice==-1)
        {
            System.out.println("tu número no esta en la lista");
        }
        else
        {
            System.out.println("tu número esta en el indice: "+indice);
        }
}
     static int[] inicializa(int n)
    {
        int i,j,a[]=new int[n];
        for(i=0;i<n;i++)
        {
            a[i]=randomxy(1,50);           
        }
         return a;
    }
     static int busquedaLineal(int a[],int n)
    {
        int i;
        for (i=0;i<a.length;i++)
        {           
            if (a[i] == n)
            {
                return i+1; 
            }   
        }
        return -1;
    }
     static void muestra(int a[])
    {
        int n=a.length;
        for(int i=0;i<n;i++)
        {           
            System.out.print(a[i]+" ");           
        }
        System.out.print("nn");       
     }
     static int randomxy(int x,int y)
    {           
        int ran=(int) (Math.floor(Math.random()*(y-x+1))+x);
        return ran;
    }

El siguiente programa desarrollado en el lenguaje de programación Java cumple con los siguientes requerimientos.
•    Crea un menú de opciones (INSERTAR, CONSULTAR, ELIMINAR Y FINALIZAR).
•    INSERTAR: almacena el nombre de una personas en vectores estáticos tipo String de tamaño 50.
•    CONSULTAR: Utilizando el algoritmo de búsqueda secuencial pide el nombre y si lo encuentra imprime un mensaje de encontrado, en caso contrario un mensaje de no localizado.
•    ELIMINAR: Utilizando el algoritmo de búsqueda secuencial pide el nombre y si lo encuentra imprime un mensaje de encontrado y elimina el nombre ajustando el vector para no dejar espacios en blanco, en caso contrario un mensaje de no localizado.
•    FINALIZAR: Imprime los nombres almacenado y sale del programa.


import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BusquedaSecuencial {
static BufferedReader br = null;
static String N= "";
static int n=0;
static String[] Nombre = new String[50];
static String[] APaterno = new String[50];
static String[] AMaterno = new String[50];
public static void main (String args[]){
br = new BufferedReader(new InputStreamReader(System.in));
do{
menu();
}while(Integer.parseInt(N)!=4);
}
public static void menu(){
do{
System.out.println("Selecciona una de las opciones del menú: \n "
+ "1- INSERTAR \n "
+ "2- CONSULTAR "
+ "\n 3- ELIMINAR \n "
+ "4- FINALIZAR");
try{
N = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
}while(!esEntero(N) || conversor(N)<=0 || conversor(N)>=5 );
switch(Integer.parseInt(N)){
case 1:
insertar();
break;
case 2:
consultar();
break;
case 3:
eliminar();
break;
case 4:
imprimir();
break;
}
}
public static void consultar(){
if(n>0){
String nombre="";
int eureka=0;
try{
System.out.println("Ingresa el Nombre : ");
nombre = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
for(int i=0; i<n; i++){
if(Nombre[i].equals(nombre)){
eureka=1;
}
}
if(eureka==1){
System.out.println("Nombre encontrado!!!!!. ");
}else{
System.out.println("Nombre NO localizado!!!!!. ");
}
}
else{
System.out.println("No hay elementos en la lista. ");
}
}
public static boolean esEntero(String cad) {
for(int i = 0; i<cad.length(); i++)
if( !Character.isDigit(cad.charAt(i)) )
return false;
return true;
}
public static int conversor(String x){
int valor=0;
try{
valor= Integer.parseInt(x);
}catch(NumberFormatException e){
System.out.println("Valor invalido");
}
return valor;
}
public static void insertar(){
if(n<50){
System.out.println("Leyendo datos de la persona: " + (n+1));
try{
System.out.println("Ingresa el Apellido Paterno: ");
APaterno[n] = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
try{
System.out.println("Ingresa el Apellido Materno: ");
AMaterno[n] = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
try{
System.out.println("Ingresa el nombre: ");
Nombre[n] = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
n++;
}else{
System.out.println("El vector esta lleno, elimina personas para poder insertar");
}
}
public static void eliminar(){
String nombre="";
int encontrados=0;
if(n>0){
try{
System.out.println("Ingresa el Nombre : ");
nombre = br.readLine();
}catch(Exception e){
e.printStackTrace();
}
for(int i=0; i<n; i++){
if(Nombre[i].equals(nombre)){
encontrados++;
for(int j=i; j<n; j++){
Nombre[j]=Nombre[j+1];
APaterno[j]=APaterno[j+1];
AMaterno[j]=AMaterno[j+1];
}
i--;
n--;
}
}
if(encontrados>0){
System.out.println("Nombre encontrado, procediendo a eliminar!!!!!. ");
}else{
System.out.println("Nombre NO localizado!!!!!. ");
}
}else{
System.out.println("No hay elementos a eliminar.");
}
}
public static void imprimir(){
if(n>0){
System.out.println("Apellido paterno Apellido Materno Nombre");
for(int i=0; i<n; i++){
System.out.print(i+1 + ".- " + APaterno[i] + "\t");
System.out.print(AMaterno [i] + "\t ");
System.out.print(Nombre [i] + ".");
System.out.println();
}
}
}
}