Bsqueda Secuencial Se utiliza cuando el vector no est ordenado o no puede ser ordenado previamente. Consiste en buscar el elemento comparndolo secuencialmente (de ah su nombre) con cada elemento del arreglo hasta encontrarlo, o hasta que se llegue al final. CARACTERISTICAS VENTAJAS DESVENTAJAS 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. Es eficiente cuando un arreglo no est ordenado es la nica manera en la que se puede emplear Es muy lento. Requiere mucho tiempo, debido a que se comparan uno a uno. ESTRUCTURA ALGORITMICA V es vector de elementos de dimensin N K es elemento
para i <- 1 hasta N repite:
si V[i]=K entonces salida < -"Encontrado" fin fin si fin para salida <- "No se ha encontrado el elemento"
Bsqueda Binaria Es un algoritmo basado en la divisin y poda sistemtica del vector de entrada. Consiste en encontrar la mitad del conjunto de datos y comparar si el elemento que se busca se puede encontrar en la primera mitad o en la segunda. Una vez que se decida en cul de las dos mitades se le puede encontrar, se prosigue a encontrar el elemento central de esa mitad y se repite de nuevo el proceso. El algoritmo finaliza cuando encuentra lo que se est buscando o cuando ya no se puede subdividir ms (por falta de elementos) en mitades. CARACTERISTICAS VENTAJAS DESVENTAJAS La Bsqueda Binaria impone que el vector de bsqueda este ordenado.
Si se van a repetir muchas bsquedas sobre el mismo conjunto de datos, si resulta rentable emplear tiempo de computacin en ordenar el conjunto para usar este mtodo.
La Bsqueda Binaria tiene su forma algortmica ms natural en su versin recursiva.
Trata de hacer ms eficiente la bsqueda, en el sentido de ocupar menos tiempo (ser ms rpido) para encontrar un dato en particular o descubrir que no se encuentra dentro de la lista. Su rapidez en comparacin con el secuencial, ya que solo tiene que hacerse a lo sumo, la mitad ms una de las verificaciones para constatar si se encuentra o no el elemento en la lnea, lo cual acorta el tiempo de bsqueda.
Para su ejecucin, es condicin indispensable que la lista de datos se haya ordenado previamente.
Su eficiencia puede ser engaosa en el sentido de que para su aplicacin es necesario un pre-proceso de los datos (la ordenacin), que puede consumir tiempo de computacin.
ESTRUCTURA ALGORITMICA //Declaracion del array y asignacion, etc.., etc.., etc.. //El array se llama EjemArray int Buscar(int Num){ int Menor = 0; int Mayor = 999999; while(Menor <= Mayor){ int Medio = Menor+(Mayor-Menor+1)/2; int NumPos = EjemArray[Medio]; if(NumPos == Num){ return Medio; } if(NumPos < Num){ Menor = NumPos+1; }else{ Mayor = NumPos-1; } } return -1; }
Bsqueda Directa Nos permite localizar de una manera ms rpida el elemento, ya que se utiliza una clave que solo contiene el elemento a encontrar. CARACTERISTICAS VENTAJAS DESVENTAJAS Este es el mtodo ms sencillo y consiste en ir comparando el valor buscado con los sucesivos valores del array, hasta que sean iguales (es localizado) o hasta que finalice el array (no es localizado). El procedimiento localiza el ptimo estrechando en forma progresiva el intervalo de incertidumbre hasta cualquier grado de exactitud que se desee.
La idea de los mtodos de bsqueda directa es identificar el intervalo de incertidumbre que comprenda al punto de solucin ptima. No es necesario que los datos del array estn ordenados.
Los mtodos de bsqueda directa se aplican principalmente a funciones estrictamente unimodales de una variable. El algoritmo funciona mejor cuando el arreglo es pequeo y esta ordenado. ESTRUCTURA ALGORITMICA
#define N 5 void main(void) { int A[N] = {19, 5, 13, 4, 7}; int i, ValorBuscar; scanf(%2d, &ValorBuscar); fflush(stdin);
for (i = 0; i < N && ValorBuscar != A[i]; i++) { ; } //El bucle for slo incrementa la i.
if (i < N) printf(Encontrado en posicin %d, i); else printf(No encontrado); }