26 abr 2016

Algoritmos de Busqueda

Búsqueda Secuencial
Es ir comparando el elemento o criterio de búsqueda con cada uno de los elementos en el arreglo.
                          
        Ventajas:        Fácil implementación
                               Búsqueda eficaz
                               Funciona con cualquier método

      Desventajas:   Tiende hacerse lento
                              El proceso es muy largo

Código:
              public int BusquedaSecuencia l(int []arreglo,int dato)
                  {
                      int posicion=-1;
                  for(int i=0;i<arreglo.length;i++)
                           {
                            if(arreglo[i]==dato){
                                               posicion=i;             
                                                            }break;
                            }
                           return posicion;
                       }


Búsqueda Binario(Listas)

Es donde si el arreglo o vector esta bien ordenado se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante. 

Ventajas:   Aplicación en listas lineales 
                  Búsqueda Eficaz 

Desventajas: Funciona solo con métodos ordenados

Código
                public static int BusquedaBinaria(int a[], int x)
                {
                 int medio;
                 int inicio=0;
                 int fin=a.length-1;
              while(inicio<=fin)
                           {
                 medio=(inicio+fin)/2;
                  if (a[medio]==x)
                                      {
                           return medio
                                       }
                  if (a[medio]<x)
                                            {
                           inicio=medio+1
                  elfe if(a[medio]>x)
                       {
                   fin=medio-1;
                       }
                                          }
                   return -1
                  }