Burbuja

9
UNIVERSIDAD NACIONAL EXPERIMENTAL “FRANCISCO DE MIRANDA” MUNICIPALIZACIÓN TOCÓPERO ÁREA CIENCIAS DE LA EDUCACIÓN PROGRAMA MATEMÁTICA MENCIÓN INFORMÁTICA U.C: ESTRUCTURA DE DATOS Tocópero; Julio 2015 Estudiantes: Gotopo, Saray Guerrero, José Guerrero, Lorena Romero, Yasmery Profesor: Licdo. Jhom Guerrero

description

El método de ordenación por intercambio directo o método de la burbuja, es el más simple y consiste en comparar dos elementos adyacentes para determinar si se realiza un intercambio entre los mismos, esto en caso de que el primero sea mayor que el segundo (forma ascendente) o el caso de que el primero sea menor que el segundo (forma descendente).

Transcript of Burbuja

  • UNIVERSIDAD NACIONAL EXPERIMENTAL

    FRANCISCO DE MIRANDA

    MUNICIPALIZACIN TOCPERO

    REA CIENCIAS DE LA EDUCACIN

    PROGRAMA MATEMTICA MENCIN INFORMTICA

    U.C: ESTRUCTURA DE DATOS

    Tocpero; Julio 2015

    Estudiantes:

    Gotopo, Saray

    Guerrero, Jos

    Guerrero, Lorena

    Romero, Yasmery

    Yasmeri Romero

    Profesor:

    Licdo. Jhom Guerrero

  • Ordenamiento

    Es la operacin de arreglar los registros de una tabla en algn orden

    secuencial de acuerdo a un criterio de ordenamiento. El ordenamiento se efecta

    con base en el valor de algn campo en un registro. El propsito principal de un

    ordenamiento es el de facilitar las bsquedas de los miembros del conjunto

    ordenado.

    Ordenar.

    Consiste en reagrupar o reorganizar un conjunto de datos u objetos en una

    secuencia especifica, la cual puede ser de dos formas distintas:

    Ascendente (menor a mayor)

    Descendente (mayor a menor).

    Clasificacin de los Mtodos de Ordenamiento.

    Los mtodos de ordenacin se clasifican en dos categoras:

    Ordenacin interna (de arreglos)

    Ordenacin externa (de archivos).

    La ordenacin interna o de arreglos, recibe este nombre ya que los elementos

    o componentes del arreglo se encuentran en la memoria principal de la

    computadora.

    Los mtodos de ordenacin interna a su vez se clasifican en:

    Mtodos directos (n2) y

    Mtodos logartmicos (n * log n).

    Los mtodos directos, son los ms simples y fciles de entender, son eficientes

    cuando se trata de una cantidad de datos pequea. Los mtodos logartmicos, son

  • ms complejos, difciles de entender y son eficientes en grandes cantidades de

    datos.

    Los mtodos directos ms conocidos son:

    Ordenacin por intercambio.

    Ordenacin por insercin.

    Ordenacin por seleccin.

    Algoritmos de ordenamiento por intercambio.

    El algoritmo de ordenacin por el mtodo de insercin directa es un

    algoritmo relativamente sencillo y se comporta razonablemente bien en gran

    cantidad de situaciones.

    Completa la tripleta de los algoritmos de ordenacin ms bsicos y de

    orden de complejidad cuadrtico, junto con SelectionSort y BubbleSort.

    Se basa en intentar construir una lista ordenada en el interior del array a ordenar.

    De estos tres algoritmos es el que mejor resultado da a efectos prcticos.

    Realiza una cantidad de comparaciones bastante equilibrada con respecto a los

    intercambios, y tiene un par de caractersticas que lo hacen aventajar a los otros

    dos en la mayor parte de las situaciones.

    Este algoritmo se basa en hacer comparaciones, as que para que realice

    su trabajo de ordenacin son imprescindibles dos cosas: un array o estructura

    similar de elementos comparables y un criterio claro de comparacin, tal que

    dados dos elementos nos diga si estn en orden o no.

    En cada iteracin del ciclo externo los elementos 0 a i forman una lista

    ordenada.

    Los algoritmos de ordenacin directa por intercambio que se analizaran son:

  • El mtodo de la burbuja.

    El mtodo quicksort.

    El mtodo shellsort.

    Burbuja.

    El mtodo de ordenacin por intercambio directo o mtodo de la burbuja, es

    el ms simple y consiste en comparar dos elementos adyacentes para determinar

    si se realiza un intercambio entre los mismos, esto en caso de que el primero sea

    mayor que el segundo (forma ascendente) o el caso de que el primero sea menor

    que el segundo (forma descendente).

    El origen del nombre de este algoritmo proviene de la forma con la que

    suben por la lista los elementos durante los intercambios, tal y como si fueran

    "burbujas", el algoritmo fundamental de este mtodo es la simple comparacin de

    elementos siendo as el ms fcil de implementar.

    Se le denomina ordenacin por burbuja debido a que los valores mas

    grandes burbujean a la parte superior de modo similar como suben las burbujas en

    el agua.

    Descripcin.

    Para una lista de n elementos, requiere hasta n-1 pasadas.

    Donde una pasada representa el recorrido total de la lista.

    Por cada pasada se comparan elementos adyacentes de la lista y se

    intercambian sus valores solo cuando el primer elemento es mayor que el

    segundo.

  • Ejemplo Burbuja

    BURBUJA SIMPLE

    Como lo describimos en el item anterior, la burbuja mas simple de todas es

    la que compara todos con todos, generando comparaciones extras, por ejemplo,

    no tiene sentido que se compare con sigo mismo o que se compare con los

    valores anteriores a el, ya que supuestamente, ya estn ordenados.

    Por ejemplo, imaginemos que tenemos los siguientes valores:

    5 6 1 0 3

    Lo que hara una burbuja simple, seria comenzar recorriendo los valores de

    izq. A derecha, comenzando por el 5. Lo compara con el 6, con el 1, con el 0 y con

    el 3, si es mayor o menor (dependiendo si el orden es ascendiente o

    descendiente) se intercambian de posicin. Luego continua con el siguiente, con el

    6, y lo compara con todos los elementos de la lista, esperando ver si se cumple o

    no la misma condicin que con el primer elemento. As, sucesivamente, hasta el

    ultimo elemento de la lista.

    for (i=1; i

  • BURBUJA MEJORADA

    Una nueva versin del mtodo de la burbuja seria limitando el nmero de

    comparaciones, dijimos que era intil que se compare consigo misma. Si tenemos

    una lista de 10.000 elementos, entonces son 10.000 comparaciones que estn

    sobrando. Imaginemos si tenemos 1.000.000 de elementos. El mtodo seria

    mucho mas optimo con n comparaciones menos (n = total de elementos)

    BURBUJA OPTIMIZADA

    Si al cambio anterior (el de la burbuja mejorada) le sumamos otro cambio, el

    hecho que los elementos que estn detrs del que se esta comparando, ya estn

    ordenados, las comparaciones serian aun menos y el mtodo seria aun mas

    efectivo.

    Anlisis del Algoritmo

    Estabilidad: Este algoritmo nunca intercambia registros con claves iguales.

    Por lo tanto es estable.

    Requerimientos de Memoria: Una variable adicional para realizar los

    intercambios.

    Tiempo de Ejecucin: Para una lista de n elementos el ciclo externo se

    ejecuta n1 veces. El ciclo interno se ejecuta como mximo una vez en la

    primera iteracin, 2 veces en la segunda, 3 veces en la tercera, etc.

  • Procedimientos del mtodo de la burbuja

    El primer procedimiento del mtodo de la burbuja es:

    Generar un ciclo que inicie desde uno hasta el nmero de elementos del

    arreglo.

    Generar un segundo ciclo dentro del anterior que inicie desde cero hasta el

    nmero de elementos del arreglo menos dos.

    Dentro del segundo ciclo debe existir una comparacin que determina el

    tipo de ordenamiento (ascendente o descendente) entre el primer elemento

    (posicin generado por el segundo ciclo) y el segundo elemento (el que le

    sigue), si la respuesta a la condicin es verdadera se realiza un intercambio

    entre los dos elementos.

    Para realizar el intercambio se genera un almacenamiento temporal, el cual

    guarda el dato del primer elemento, el segundo elemento toma el lugar del

    primero y en el lugar del segundo se coloca lo que contiene el

    almacenamiento temporal.

    Una vez que los ciclos terminan la estructura debe quedar ordenada de

    forma ascendente o descendente, pero este procedimiento es considerado

    como el pero de los casos ya que si el nmero de elementos de la

    estructura es de 100, se tienen que realizar 9900 comparaciones entes de

    terminar la ejecucin del mtodo.

    Un segundo procedimiento del mtodo de la burbuja es:

    Generar un ciclo que inicie desde cero hasta el nmero de elementos

    menos dos.

    Generar un segundo ciclo desde el valor del ciclo anterior mas uno hasta el

    nmero de elementos menos uno;

    Dentro del segundo ciclo debe existir una comparacin que determina el

    tipo de ordenamiento (ascendente o descendente) entre el primer elemento

    (posicin generada por el primer ciclo) y el segundo elemento (posicin

  • generada por el segundo ciclo), si la respuesta a la condicin es verdadera

    se realiza un intercambio entre los dos elementos.

    Para realizar el intercambio se genera un almacenamiento temporal, el cual

    guarda el dato del primer elemento, el segundo elemento toma el lugar del

    primero y en el lugar del segundo se coloca lo que contiene el

    almacenamiento temporal.

    Una vez que los ciclos terminan la estructura debe quedar ordenada, la

    diferencia con el procedimiento anterior radica en el nmero de

    comparaciones y posibles intercambios que se presentan, en este segundo

    procedimiento, es menor ya que cada pasada que se le da al arreglo se

    realiza una comparacin menos que en la pasada anterior.

    Un tercer procedimiento del mtodo de la burbuja es el siguiente:

    Generar un ciclo que inicie desde uno hasta el nmero de elementos menos

    uno.

    Generar un segundo ciclo que inicie desde el nmero de elementos menos

    uno y mientras que ese valor sea mayor o igual al del ciclo anterior (con

    decrementos).

    Dentro del segundo ciclo debe existir una comparacin que determina el

    tipo de ordenamiento (ascendente o descendente) entre el primer elemento

    (posicin generada por el segundo ciclo) y el segundo elemento (posicin

    generada por el segundo ciclo menos uno), si la respuesta a la condicin es

    verdadera se realiza un intercambio entre los dos elementos.

    Para realizar el intercambio se genera un almacenamiento temporal, el cual

    guarda el dato del primer elemento, el segundo elemento toma el lugar del

    primero y en el lugar del segundo se coloca lo que contiene el

    almacenamiento temporal

    Este tercer procedimiento es muy similar al anterior con la diferencia que el

    elemento que va quedando es su lugar el primero no el ltimo como en el

    caso anterior.

  • Ventajas del mtodo de ordenacin por burbuja:

    Fcil implementacin.

    Requerimientos mnimos de memoria.

    Es bastante sencillo

    En un cdigo reducido se realiza el ordenamiento

    Eficaz

    Desventajas del mtodo de ordenacin por burbuja:

    Consume bastante tiempo de computadora

    Requiere muchas lecturas/escrituras en memoria

    Lento.

    Realiza numerosas comparaciones.

    Este tambin es un algoritmo lento, pero puede ser de utilidad para listas que

    estn ordenadas o semiordenadas, porque en ese caso realiza muy pocos

    desplazamientos.