1 / 20

ESTRUCTURA DE DATOS TEMA: MÉTODO DE INTERCAMBIO DIRECTO O BURBUJA INTERCAMBIO DIRECTO CON SEÑAL

ESTRUCTURA DE DATOS TEMA: MÉTODO DE INTERCAMBIO DIRECTO O BURBUJA INTERCAMBIO DIRECTO CON SEÑAL. EQUIPO #1. INTEGRANTE: UICAB SIMA ELISA MARGARITA CHI CUY MARIA GUADALUPE. ORDENAMIENTO.

taite
Download Presentation

ESTRUCTURA DE DATOS TEMA: MÉTODO DE INTERCAMBIO DIRECTO O BURBUJA INTERCAMBIO DIRECTO CON SEÑAL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ESTRUCTURA DE DATOS TEMA: MÉTODO DE INTERCAMBIO DIRECTO O BURBUJA INTERCAMBIO DIRECTO CON SEÑAL EQUIPO #1 INTEGRANTE: UICAB SIMA ELISA MARGARITA CHI CUY MARIA GUADALUPE

  2. ORDENAMIENTO • La Ordenación(clasificación) es la operación de organizar un conjunto de datos en algún orden dado, tal como creciente o decreciente en datos numéricos, o bien en orden alfabético. Operaciones típicas de ordenación son: lista de números, archivo de clientes de banco, nombres de una agenda telefónica, etc. • Tipos de ordenamientos: • ORDENACIÓN INTERNA • Los métodos de ordenación interna se explicarán con arreglos unidimensionales, pero su uso puede extenderse a otros tipos de arreglos. • Cabe señalar que se trabajará con métodos de ordenación “in situ”, es decir, métodos que no requieren de arreglos auxiliares para su ordenación, ya que éstos, además de ineficientes, son de menor interés. • Los métodos de ordenación interna a su vez pueden ser clasificados en dos tipos: • Métodos directos (n2) • Métodos logarítmicos (n * log n) • Los métodos directos tienen la característica de que sus programas con cortos y de fácil elaboración y comprensión, aunque son ineficientes cuando N (el número de elementos del arreglo) es medio o grande. • Los métodos logarítmicos son más complejos que los métodos directos. Cierto es que requieren de menos comparaciones y movimientos para ordenas sus elementos, pero su elaboración y comprensión resulta más sofisticada y abstracta.

  3. Debe aclararse que una buena medida de eficiencia ente los distintos métodos lo presenta el tiempo de ejecución del algoritmo y éste depende fundamentalmente del número de comparaciones y movimientos que se realicen entre elementos. • Los métodos directos más conocidos son:Ordenación por intercambio. (bubble sort) • Ordenación por inserción. (insertion sort) • Ordenación por selección. (selection sort) • La segunda categoría recibe también el de ordenación externa, ya que los elementos se encuentran en archivos que están almacenados en dispositivos de almacenamiento secundario como discos, cintas, etc.

  4. A continuación se describirán 3 grupos de algoritmos para ordenar información: • Algoritmos de selección: En este tipo de algoritmos se SELECCIONA o se busca el elemento más pequeño (o más grande) de todo el conjunto de elementos y se coloca en su posición adecuada. Este proceso se repite para el resto de los elementos hasta que todos son analizados. Entre estos algoritmos se encuentra el de SELECCION DIRECTA. Los métodos de ordenación por selección se basan en dos principios básicos: Seleccionar el elemento más pequeño (o más grande) del arreglo. Colocarlo en la posición más baja (o más alta) del arreglo.A diferencia del método de la burbuja, en este método el elemento más pequeño (o más grande) es el que se coloca en la posición final que le corresponde • Algoritmos de inserción: En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a la vez. Cada elemento es INSERTADO en la posición apropiada con respecto al resto de los elementos ya ordenados. Entre estos algoritmos se encuentran el de INSERCION DIRECTA, SHELL SORT, INSERCION BINARIA y HASHING. • Algoritmos de intercambio: En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y se INTERCAMBIAN si no están en el orden adecuado. Este proceso se repite hasta que se ha analizado todo el conjunto de elementos y ya no hay intercambios. Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT.

  5. Método de Intercambio Directo o Burbuja El bubble sort, también conocido como ordenamiento burbuja e intercambio directo , funciona de la siguiente manera: Se recorre el arreglo intercambiando los elementos adyacentes que estén desordenados. Se recorre el arreglo tantas veces hasta que ya no haya cambios. Prácticamente lo que hace es tomar el elemento mayor y lo coloca en las últimas posiciones. Transporta en cada pasada el elemento más pequeño hacia la parte de izquierda del arreglo. Este es el algoritmo más sencillo probablemente. Ideal para empezar. Consiste en ciclar repetidamente a través de la lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el que está en la siguiente posición se intercambian

  6. 1.-for (i=1; i<TAM; i++) • 2. for j=0 ; j<TAM - 1; j++) • 3. if (lista[j] > lista[j+1]) • 4. temp = lista[j]; • 5. lista[j] = lista[j+1]; • 6. lista[j+1] = temp; • Los pasos generales del algoritmo son: • 1.- Se compara cada elemento de la lista con su valor adyacente, si están desordenados se intercambian entre si. Se comienza comparando el primer elemento con el segundo, luego el segundo con el tercero y se prosigue al final de datos al terminar de hacer un recorrido de la lista, el elemento mas grande se encuentra al fondo de la lista y algunos elementos pequeños se han acercado al principio de la misma • 2.- se vuelve a recorrer la lista, intercambiando los valores desordenados • 3.- Se sigue haciendo recorridos hasta que la lista este ordenada. El numero de recorridos será de n-1 • Se puede optimizar para que suspendan los ordenamientos si la lista se encuentra ordenada antes del recorrido n-1

  7. Tiempo de ejecución del algoritmo burbuja: Para el mejor caso (un paso) O (n) Peor caso n (n-1)/2 Promedio O (n2) Características Ventajas: Es bastante sencillo En un código reducido se realiza el ordenamiento Eficaz Desventajas: Consume bastante tiempo de computadora Requiere muchas lecturas/escrituras en memoria

  8. ORDENAMIENTO POR INTERCAMBIO DIRECTO O DE BURBUJA. METODO NRO. 1 El algoritmo de clasificación de intercambio o de la burbuja se basa en el principio de comparar pares de elementos adyacentes e intercambiarlos entre si hasta que estén todos ordenados. Supongamos que se desea clasificar en orden ascendente el vector o lista. A 1 2 3 4 5 6 7 8 Los pasos a dar son: -Comparar A (1) y A (2), si están en orden, se mantienen como están, en caso contrario se intercambien entre si. -A continuación se comparan los elementos 2 y 3, de nuevo se intercambian si es necesario. -El proceso continúa hasta que cada elemento del vector ha sido comparado con sus elementos adyacentes y se han realizado los intercambios necesarios.

  9. El método expresado en Algoritmo en el primer diseño es: PARA I= 1, 7, 1 SI elemento (I) > elementos (I+1) entonces intercambiar elementos (I, I+1) FIN-SI FIN-PARA La acción intercambiar entre si los valores de dos elementos A (I), A (I+1), es una acción compuesta que contiene las siguientes acciones, considerado una variable auxiliar Aux. AUX = A (I) A (I) = A (I + 1) A (I +)1) = AUX En realidad el proceso gráfico es: Paso # 1: Guardo A (I) en AUX.

  10. Paso # 2: Guardo A (I+1) en A (I) Paso # 3: Paso el valor de AUX en A (I+1) Si se efectúa N-1 veces la operación sobre un vector de N valores, se tiene ordenada el vector. Cada operación requiere N-1 comprobaciones o chequeos y como máximo N-1 intercambios. La ordenación total exigirá un máximo de: (N-1) * (N-1) = (N-1)2 intercambio de elementos.10

  11. El algoritmo del Método # 1 es : Proc BURBUJA1(A,N) {El algoritmo ordena los elementos del arreglo utilizando el método de la burbuja. Transporta en cada pasada el elemento mayor hacia la parte derecha del arreglo. A es un arreglo de N elementos} {I, J son variables de tipo entero} PARA I= 1, N-1 PARA J= 1, N-1 SI A (J) > A (J+1) AUX = A (J) A (J) = A (J + 1) A (J +1) = AUX FIN-SI FIN-PARA FIN-PARA RETORNE FIN-PROC{BURBUJA1}V

  12. ORDENAMIENTO POR INTERCAMBIO DIRECTO O DE BURBUJA. METODO NRO. 2. Se puede realizar una mejora en la velocidad de ejecución del algoritmo. Obsérvese que en el primer recorrido del vector (cuando I =1) el valor mayor del vector se mueve al último elemento X (N), entonces en el siguiente paso no es necesario comparar X (N-1) y X (N). En otras palabras, el limite superior del bucle o ciclo PARA, puede ser N-2. Después de cada paso se puede decrementar en uno el límite superior del bucle/ciclo PARA, el algoritmo sería: Proc BURBUJA2(A,N) {El algoritmo ordena los elementos del arreglo. Transporta en cada pasada el elemento más grande hacia la parte derecha del arreglo. A es un arreglo de N elementos} {I, J son variables de tipo entero} Inicio PARA I= 1, (N-1) PARA J= 1, (N-I) SI A (J) > A (J+1) entonces AUX = A(J) A(J) = A(J + 1) A(J+1) = AUX FIN-Si FIN-PARA FIN-PARA FIN-PROC{BURBUJA2}

  13. METODO NRO. 3. Utilizando una Bandera o Señal Mediante una bandera o centinela, o bien, una variable lógica, se puede detectar la presencia o ausencia de una condición. En este caso mediante la variable CLASIFICADO se representa clasificación terminada con un valor verdadero y clasificación no terminada por un valor falso. PROC BURBUJA3(A,N) {El algoritmo ordena los elementos del arreglo utilizando el método de la burbuja con señal. A es un arreglo de En elementos} {I, J son variables de tipo entero. AUX es una variable del tipo de dato de los elementos del arreglo y BAND es una variable de tipo booleano} Inicio Clasificado = F {F: falso; V: Verdadero} MIENTRAS clasificado = F Clasificado = V PARA K= 1, N-1 SI A (K) > A (K+1) AUX = A(k) A(k) = A(k+1) A(k+1) = AUX Clasificado = F FIN-SI FIN-PARA FIN-MIENTRAS FIN-PROC{BURBUJA3}

  14. ANÁLISIS DE EFICIENCIA DEL MÉTODO DE INTERCAMBIO DIRECTO •     El número de comparaciones en el método de la burbuja es fácilmente contabilizable. En la primera pasada realizamos (n-1) comparaciones, en la segunda pasada (n-2) comparaciones, en la tercera pasada (n-3) comparaciones y así sucesivamente hasta llegar a 2 y 1 comparaciones entre claves, siendo n el número de elementos del arreglo. Por lo tanto: • C = (n-1) + (n-2) +...+2 + 1 = (n*(n-1))/2 • que es igual a: • C = (n2 -n)/2 •     Respecto al número de movimientos, éstos dependen de si el arreglo está ordenado, desordenado o en orden inverso. Los movimientos para cada uno de estos casos son: • Mmin = 0 • Mmed = 0.75 * (n2 - n) • Mmáx = 1.5 * (n2 - n)

  15. Método de la burbuja mejorado. Este método dentro de lo sencillo que es nos permite una mejora. Esta mejora consiste en terminar el bucle principal en el momento en el que detectemos que en una pasada, por todo lo largo de la tabla no ha habido ningún cambio. Al no haber ningún cambio, esto quiere decir que la tabla está completamente ordenada. Vamos a ver esto haciendo las variaciones pertinentes en el código anterior. Para comprobar que no se ha realizado ningún tipo de cambio necesitaremos insertar una variable de tipo booleana que solo permitirá dos valores, Verdadero o Falso. 1-Indice = 1 2-Repetir 3-Ordenado = Verdadero 4-Mientras Indice2 <> TotalElem - 1 hacer 5-Si Tabla(Indice2) > Tabla(Indice + 1) Entonces 6-Intercambiar Tabla(Indice2), Tabla(Indice2 + 1) 7-Ordenado = Falso 8-Fin Si 9-Indice2 = Indice2 + 1 10-Fin Mientras 11-Hasta que Indice > TotalElem - 1 o Ordenado = Verdadero

  16. EJEMPLOS RESUELTOS Burbuja: Consiste en comparar pares de elementos adyacentes e intercambiarlos entre sí hasta que estén todos ordenados. Con el array anterior, {40,21,4,9,10,35}: Primera pasada:{21,40,4,9,10,35} <-- Se cambia el 21 por el 40.{21,4,40,9,10,35} <-- Se cambia el 40 por el 4.{21,4,9,40,10,35} <-- Se cambia el 9 por el 40.{21,4,9,10,40,35} <-- Se cambia el 40 por el 10.{21,4,9,10,35,40} <-- Se cambia el 35 por el 40.Segunda pasada:{4,21,9,10,35,40} <-- Se cambia el 21 por el 4.{4,9,21,10,35,40} <-- Se cambia el 9 por el 21.{4,9,10,21,35,40} <-- Se cambia el 21 por el 10. Ya están ordenados, pero para comprobarlo habría que acabar esta segunda comprobación y hacer una tercera.

  17. EJEMPLO # 2 Vamos a ver un ejemplo. Esta es nuestra lista: 4 - 3 - 5 - 2 - 1 Tenemos 5 elementos. Es decir, TAM toma el valor 5. Comenzamos comparando el primero con el segundo elemento. 4 es mayor que 3, así que intercambiamos. Ahora tenemos: 3 - 4 - 5 - 2 - 1 Ahora comparamos el segundo con el tercero: 4 es menor que 5, así que no hacemos nada. Continuamos con el tercero y el cuarto: 5 es mayor que 2. Intercambiamos y obtenemos: 3 - 4 - 2 - 5 - 1 Comparamos el cuarto y el quinto: 5 es mayor que 1. Intercambiamos nuevamente: 3 - 4 - 2 - 1 - 5 Repitiendo este proceso vamos obteniendo los siguientes resultados: 3 - 2 - 1 - 4 - 5 2 - 1 - 3 - 4 - 5 1 - 2 - 3 - 4 - 5

  18. Ejemplo:Supóngase que están almacenados cuatro números en un arreglo con casillas de memoria de x[1] a x[4]. Se desea disponer esos números en orden creciente. La primera pasada de la ordenación por burbujeo haría lo siguiente:Comparar el contenido de x[1] con el de x[2]; si x[1] contiene el mayor de los números, se intercambian sus contenidos.Comparar el contenido de x[2] con el de x[3]; e intercambiarlos si fuera necesario.Comparar el contenido de x[3] con el de x[4]; e intercambiarlos si fuera necesario. Al final de la primera pasada, el mayor de los números estará en x[4].

  19. FUENTES BIBLIOGRAFICAS http://www.monografias.com/trabajos/algordenam/algordenam.shtml http://boards2.melodysoft.com/app?ID=simuproc&msg=1594 http://www.monografias.com/trabajos/algordenam/algordenam.shtml http://www.myalgorithm.com/documento48.html http://c.conclase.net/orden/burbuja.html

More Related