Encuentra los temas que te intereza

domingo, 23 de octubre de 2016

TRABAJO GRUPAL

ORDENAMIENTO Y BÚSQUEDA


El día de hoy explicaremos como funciona el método de ordenamiento QuickSort, conocido por ser el más rápido y por ello eficiente ya que reduce recurso y sobre todo optimiza nuestro código. Y también explicaremos la Búsqueda Binaria, donde esta búsqueda es mucho más eficiente que otras; Y ese es el propósito de nuestro blogger. "OPTIMIZAR".

Ordenamiento Rápido (QuickSort):


Este algoritmo fue propuesto por Charles Antony Richard Hoare en 1960. En este método se recalca esta frase "Divide y vencerás"; ya que dicho método consiste en esto, ya que divide a nuestro arreglo en sub-arreglos y aplica este mismo método en los sub-arreglos. A esto se le llama recursividad y nuestro ordenamiento rápido funciona por ello.

A continuación el método de Ordenamiento QuickSort:
public class Metodos {
     
      public int[] quicksort2(int numeros[], int izq, int dere) {
        if (izq>=dere) 
            return numeros;
        int i=izq,d=dere;
        if (izq !=dere) {
            int pivote;
            int aux;
            pivote=dere;
            while (izq!= dere) {
                while (numeros[pivote] > =numeros[izq] && izq < dere) 
                    izq++;   
                  while (numeros[pivote] < numeros[der] && izq < dere) {
                        dere--; }  
                
                if(dere!=izq){
                
                    aux=numeros[dere];
                    numeros[dere]=numeros[izq];
                    numeros[izq]=aux;}
            }
            if (izq==dere) {
                quicksort2(numeros, i, izq-1);
                quicksort2(numeros, izq+1, d);
            }
            
        }else
            return numeros;
             
        return numeros;
    }
}

Búsqueda Binaria:


Cabe mencionar que, el método funciona si el vector esta ordenado; con cualquier método de ordenamiento. Con este método se examina primero el elemento medio del arreglo; si este es el elemento buscado entonces la búsqueda ha terminado. En caso contrario se determina si el elemento buscado está en la primera o segunda mitad del arreglo y a continuación se repite el proceso anterior, utilizando el elemento medio del arreglo de esta sublista.

A continuación el método de Búsqueda Binaria:

public class Metodos {
     
    public int busquedbinaria(int array[],int cantidad, int num) {
        int tam = cantidad;
        int min = 0, med = 0, max = tam;
        while (min <= max) {
            med = (min + max) / 2;
            if (num == array[med]) {
                System.out.println("ES CIERTO SALE DEL BUCLE ");
                break;
            }
            if (num < array[med]) {
                max = med;
            } else {
                min = med;
              }
        }
        return med;
    } 
}

Estos métodos lo implementamos en una Interface, para una mejor visualización y comprensión de los métodos. Ademas de ello los datos guardados se guardan en un Archivo txt. 
El programa lo dejare en el link de descarga para que puedan estudiarlo.




Link de Descarga:    AQUI !!!

No hay comentarios:

Publicar un comentario