viernes, 23 de diciembre de 2011

Lenguaje Java - Leccion 9

Métodos de Búsqueda y Ordenamiento


En la lección de hoy veremos como implementar los métodos de búsqueda secuencial y búsqueda binaria y los ordenamientos por selección:

Búsquedas:

Búsqueda Secuencial: Recorre todo el arreglo comparando elemento por elemento, el método implementado nos da la posición del elemento en el arreglo.

public int BusquedaSecuencial(String[] a, String dato){ // recibe un arreglo de String y el dato a buscar
      
        for(int i=0;i<a.length;i++){
            if(a[i].equals(dato)){
// recorre todo el arreglo y si el elemento es igual al dato
                return (i);
// retorna la posición buscada
            }
        }
      return -1;
    }


Búsqueda Binaria: El arreglo debe estar ordenado antes de entrar al método, lo que hace es dividir el arreglo en 2 y ver si el dato se encuentra a la izquierda o a la derecha y así sucesivamente ir dividiendo hasta que lo encuentre o la longitud del salto sea 0 y no exista el elemento, el método implementado nos da la posición del elemento en el arreglo.


public int BusquedaBinaria(int[] a, int dato){
    
   //Suponiendo el arreglo ordenado
       int pos;
         int pos1=0;
       int pos2=a.length;
       int salto=pos2-pos1;
       salto =salto/2;
       while(salto>0){
          
           if(a[pos1+salto]==dato){
               return (pos1+salto);
           }else{
               if(a[pos1+salto]<dato){
                   pos1=pos1+salto;
               }else{
                   pos2=pos2-salto;
               }
           }
           salto=pos2-pos1;
           salto=salto/2;
       }
      
       return -1;
    }




Ordenamientos:


Burbuja: El método consiste en comparar todos los elementos contra todos, hace comparaciones y va intercambiando valores, el método da como resultado el arreglo de Strings ordenado.


public String[] OrdenaPorBurbuja(String a[]){
        String aux;  
        for(int i=0;i<a.length;i++){
                 for(int e=i;e<a.length;e++){
                     if(a[i].compareTo(a[e])>0){
                         aux=a[i];
                         a[i]=a[e];
                         a[e]=aux;
                     }
               
                }
            }
        return a;
    }




Ordenamiento por Selección:



public int[] OrdenamientoSeleccion(int b[]){
         int c[]=new int[b.length];
         int d[]=new int[b.length];
         int ultimomenor=0;
         for(int i=0;i<d.length;i++){
            d[i]=0;
         }
        int menor;
        int mayor=b[0];
        for(int i=0;i<d.length;i++){
            if(mayor<b[i]){
                mayor=b[i];
            }
         }
        for(int i=0;i<b.length;i++){
            menor=mayor;
            for(int e=0;e<b.length;e++){
                if(menor>b[e] && d[e]==0){
                    menor=b[e];
                    ultimomenor=e;
                }
            }
            d[ultimomenor]=1;
            c[i]=menor;    
        }
           
        return c;
    }


No hay comentarios:

Publicar un comentario