miércoles, 6 de marzo de 2019

Metodos de busquedad

¿cuales son los metodos de busquedad que exiten?


 Un algoritmo de búsqueda binaria (o corte binario) es una función para buscar un valor particular en un arreglo ordenado. Eliminando la mitad de los datos en cada paso. La búsqueda binaria encuentra la media, compara y determina si el valor se encuentra en esa posición o esta antes o después. Una Búsqueda Binaria es un ejemplo de la técnica “Divide y Conquista” (o mejor dicho “Decrece y Conquista”).

Búsqueda Secuencial: 

La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo.
El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.

Búsqueda Binaria. 
La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.

Algoritmo

#include <stdio.h>
int main() {
int b,i,j,k, v[12];
for(i=0;i<12;i++)
scanf("%d",&v[i]);
printf("fin del llenado\n");
printf("ingrese numero a buscar ");
scanf("%d",&b);
i= 0;
j= 12-1;
do {
k= (i+j)/2;
if (v[k]<=b )
i=k+1;
if (v[k]>=b )
j= k-1;
} while (i<=j);
printf("elemento %d esta en %d\n",v[k],k);

return 0;

No hay comentarios.:

Publicar un comentario