o cómo evitar tener que buscar una aguja en un pajar
TRANSCRIPT
![Page 1: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/1.jpg)
1Diego Gutiérrez
23. Ordenación de vectores (tablas)
![Page 2: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/2.jpg)
3Diego Gutiérrez
Ordenación
O cómo evitar tener que buscar una aguja en un pajar
![Page 3: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/3.jpg)
4Diego Gutiérrez
Ordenación
O cómo evitar tener que buscar una aguja en un pajar
¿Cómo buscamos una palabra en un diccionario? ¿O un número de teléfono en una guía?
Usando nuestro conocimiento de cómo están ordenados los datos
![Page 4: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/4.jpg)
5Diego Gutiérrez
Ordenación
O cómo evitar tener que buscar una aguja en un pajar
¿Cómo buscamos una palabra en un diccionario? ¿O un número de teléfono en una guía?
Usando nuestro conocimiento de cómo están ordenados los datos
Sin un orden lógico en los datos, las búsquedas podrían ser terriblemente largas
Agilizar las operaciones de búsqueda es una razón que justifica la importancia de contar con estructuras de datos ordenadas.
![Page 5: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/5.jpg)
6Diego Gutiérrez
Ordenación
Ordenar: organizar los datos según un criterio
La comparación (aplicación del criterio) de dos elementos cualesquiera del conjunto a ordenar debe resultar en un valor lógico que indique si los elementos cumplen el criterio de ordenación
Aunque todos sabemos ordenar un número pequeño de elementos (por orden alfabético, por numeración creciente o decreciente…) la tarea se haría casi imposible para grandes cantidades de elementos. Entran en juego los algoritmos y los ordenadores
![Page 6: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/6.jpg)
7Diego Gutiérrez
Ordenación
La importancia de contar con tablas de datos ordenadas se justifica por la eficiencia de los algoritmos de búsqueda binaria que pueden ser aplicados (esp. si n>100 aprox.)
Algunos de los algoritmos de ordenación más utilizados son inserción, intercambio (burbuja), selección, mezcla o quicksortLa elección de un determinado algoritmo depende de factores como el tamaño de la tabla, el tipo de datos, la forma de acceso a la información o la cantidad de memoria disponible.
![Page 7: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/7.jpg)
8Diego Gutiérrez
Ordenación
El problema:
Entrada: secuencia ⟨a1, a2, …, an⟩ de elementosSalida: permutación ⟨a'1, a'2, …, a'n⟩ tal que a'1≤a'2≤…≤a'n
Suponemos definida una función medida que, aplicada a los datos de la tabla proporciona como resultados valores pertenecientes a un tipo escalar y, por lo tanto, comparables
Ejemplo:Entrada: 8 2 4 9 3 6Ordenación exigida: medida(a'1) <= medida(a‘2) <= ...<= medida(a‘n)
Salida: 2 3 4 6 8 9
secuencia de datos ordenadosde acuerdo con un determinado criterio de ordenación.
![Page 8: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/8.jpg)
9Diego Gutiérrez
Para ilustrar estas ideas, vamos a considerar una tabla T con unnúmero reducido de datos, por ejemplo ocho datos :
![Page 9: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/9.jpg)
10Diego Gutiérrez
Para ilustrar estas ideas, vamos a considerar una tabla T con unnúmero reducido de datos, por ejemplo ocho datos :
Se muestran a continuación ahora los valores de la medida de cada uno de los datos. Por simplicidad, se ha considerado en este ejemplo que los valores de medida son datos de tipo entero.
![Page 10: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/10.jpg)
11Diego Gutiérrez
La ordenación de la tabla T debe conducir a una reorganización de sus datos que satisfaga que sus medidas respectivas estén ordenadas de forma no decreciente (“≤”). Tras la ordenación, el valor de la tabla T es el siguiente :
Se puede comprobar que los valores de las medidas de cada uno de ellos respeta el criterio de ordenación no decreciente (“≤”).
![Page 11: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/11.jpg)
12Diego Gutiérrez
Ordenación
Tres algoritmos:SelecciónInserciónIntercambio directo (o burbuja)
No usan tablas auxiliares para la ordenación
Desde el punto de vista didáctico son excelentes ejemplos de diseño de algoritmos sobre estructuras de datos indexadas
Otros algoritmos más eficientes (quicksort, mergesort…) no se presentan ya que su complejidad sobrepasa el ámbito de este curso
![Page 12: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/12.jpg)
13Diego Gutiérrez
Método de selección:
Su eficiencia destaca cuando se aplica a tablas de dimensión reducida.
El método se basa en una idea muy sencilla y fácil de programar. Se trata de iterar a lo largo de la tabla, buscando en cada iteración el elemento menor (es decir, el dato cuya medida es la menor) entre los que quedan por ordenar para situarlo en la posición que le corresponde.
http://www.youtube.com/watch?v=boOwArDShLU&feature=related
![Page 13: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/13.jpg)
14Diego Gutiérrez
Método de selección
En la iteración i-ésima se parte de que la subtabla T(1..i-1) ya está ordenada (con los i-1 valores menores de la tabla). Se busca entonces el elemento siguiente en la ordenación dentro de la subtabla T(1..n) y se permuta con el elemento de la posición T(i)
46 21 8 22 11
http://www.youtube.com/watch?v=boOwArDShLU
![Page 14: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/14.jpg)
15Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
46 21 8 22 11
![Page 15: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/15.jpg)
16Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 21 46 22 11
![Page 16: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/16.jpg)
17Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 21 46 22 11
![Page 17: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/17.jpg)
18Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 21 46 22 11
![Page 18: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/18.jpg)
19Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 46 22 21
![Page 19: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/19.jpg)
20Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 46 22 21
![Page 20: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/20.jpg)
21Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 46 22 21
![Page 21: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/21.jpg)
22Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 21 22 46
![Page 22: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/22.jpg)
23Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 21 22 46
![Page 23: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/23.jpg)
24Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 21 22 46
![Page 24: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/24.jpg)
25Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 21 22 46
![Page 25: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/25.jpg)
26Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 21 22 46
![Page 26: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/26.jpg)
27Diego Gutiérrez
Método de selección
Encontrar el siguiente elemento a ordenar y ponerlo en el lugar adecuado intercambiándolo con el elemento en la posición a ser ocupada
8 11 21 22 46
(El último elemento evidentemente ya está en su sitio)
![Page 27: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/27.jpg)
28Diego Gutiérrez
Método de selecciónalgoritmo Seleccion (referencia a: tpTabla; valor n: integer);{ Pre: a=a0Post: La tabla a almacena una permutación de a0 y sus datos están ordenados}variables
i, j, pos_min: integer; {i: lugar, j: elemento, pos_min: posición del mínimo}min: tpElemento;
principiopara i:=1 hasta n-1 hacer
pos_min:=i; min:=a[pos_min] para j=i+1 hasta n hacer
si condición entonces {nueva posición, nuevo mínimo}pos_min:=j; min:= a[pos_min] fsi
fparasi pos_min <> i entonces {si i no era el menor, se intercambia}
a[pos_min]:=a[i];a[i] = min; fsi
fparafin
a[j] < a[pos_min]
![Page 28: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/28.jpg)
29Diego Gutiérrez
Método de selecciónalgoritmo Seleccion (referencia a: tpTabla; valor n: integer);{ Pre: a=a0Post: La tabla a almacena una permutación de a0 y sus datos están ordenados}variables
i, j, pos_min: integer; {i: lugar, j: elemento, pos_min: posición del mínimo}min: tpElemento;
principiopara i:=1 hasta n-1 hacer
pos_min:=i; min:=a[pos_min] para j=i+1 hasta n hacer
si condición entonces {nueva posición, nuevo mínimo}pos_min:=j; min:= a[pos_min] fsi
fparasi pos_min <> i entonces {si i no era el menor, se intercambia}
a[pos_min]:=a[i];a[i] = min; fsi
fparafin
Podemos no evaluar esta condición… (coste)
![Page 29: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/29.jpg)
30Diego Gutiérrez
Método de selección
Simple y fácil de implementar…No muy eficiente para grandes tablas
![Page 30: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/30.jpg)
31Diego Gutiérrez
Método de inserción directa
Inserción directa
El método es algo menos eficiente que el de ordenación por selección, salvo si la tabla a ordenar presenta una secuencia cuyos datos están próximos a la deseada tras la ordenación
Se itera n-2 veces. En la iteración i se parte de la precondición de que la subtabla T(1..i-1) está ordenada según valores no decrecientes (<=) de la medida de sus datos. La acción a iterar consiste en la inserción del dato T(i) en la posición que le corresponda de la subtabla T(1..i).
En cada iteración crece en una unidad el número de datos ya ordenados.
![Page 31: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/31.jpg)
32Diego Gutiérrez
Método de inserción directa
Inserción directa:
El método es similar a ordenar por orden creciente una serie de cartas en la mesa: se examina la que se tiene en la mano, se analizan las ya ordenadas hasta encontrar el lugar correspondiente, se hace hueco y se inserta la carta.
http://www.youtube.com/watch?v=gTxFxgvZmQs
Para tener i cartas ordenadas, se parte de i-1 cartas ordenadas e inserta la nueva carta en el lugar correspondiente
O sea, se insertan elementos en una parte que ya está ordenada
![Page 32: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/32.jpg)
33Diego Gutiérrez
Método de inserción directa
Inserción directa: Esquema básico
Se recorre la tabla con un bucle (índice i) desde el segundo elemento hasta el final, de forma que se van dejando ordenadas todas las posiciones inferiores. “Se hace hueco”: El elemento que se quiere insertar se guarda en una variable auxiliar y se va recorriendo la parte ordenada desde el final hasta el principio y desplazando los elementos para dejar el hueco donde insertar.El elemento en cuestión (el de índice i) se inserta en el lugar que le corresponde dentro de la parte ordenada.
para i:=2 hasta n hacerinsertar ai en el lugar adecuado en la secuencia a1….ai-1
fpara
![Page 33: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/33.jpg)
34Diego Gutiérrez
Método de inserción directa
Elemento a buscarElementos
ordenados
ij
![Page 34: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/34.jpg)
35Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 35: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/35.jpg)
36Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 36: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/36.jpg)
37Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 37: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/37.jpg)
38Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 38: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/38.jpg)
39Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 39: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/39.jpg)
40Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 40: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/40.jpg)
41Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 41: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/41.jpg)
42Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 42: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/42.jpg)
43Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 43: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/43.jpg)
44Diego Gutiérrez
Método de inserción directa
Inserción directa
![Page 44: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/44.jpg)
45Diego Gutiérrez
Método de inserción directa
Inserción directa
fin
Ver también http://www.wanginator.de/studium/applets/insertionsort_de.html
![Page 45: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/45.jpg)
46Diego Gutiérrez
Método de inserción directa
Algoritmo detallado
algoritmo Insercion_Directa (referencia a: tpTabla; valor n: integer);{Pre: a = a0; Post: a es una permutación de a0 cuyos elementos están ordenados}variables
i, j: integer;{i: elemento a insertar, j: punto de inserción}aux: tpDato;
principiopara i:=2 hasta n hacer
aux:=a[i]; j:=i-1;mientras j>0 y a[j]>a[0] hacer {buscar punto inserción}
a[j+1] := a[j]; j := j-1
fmq;a[j+1] := aux; {insertar a[i] en su posición correcta}
fparafin
![Page 46: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/46.jpg)
47Diego Gutiérrez
Método de inserción directa
Elemento a buscarElementos
ordenados
ij
Más rápido, también fácil de implementar
![Page 47: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/47.jpg)
48Diego Gutiérrez
Método de la burbuja (o intercambio)
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
26 14 26 15 1 3
http://www.youtube.com/watch?v=1JvYAXT_064&mode=related&search
![Page 48: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/48.jpg)
49Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
26 14 26 15 1 3
![Page 49: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/49.jpg)
50Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 26 15 1 3
![Page 50: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/50.jpg)
51Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 26 15 1 3
![Page 51: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/51.jpg)
52Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 26 15 1 3
![Page 52: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/52.jpg)
53Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 15 26 1 3
![Page 53: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/53.jpg)
54Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 15 26 1 3
![Page 54: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/54.jpg)
55Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 15 1 26 3
![Page 55: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/55.jpg)
56Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 15 1 26 3
![Page 56: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/56.jpg)
57Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 15 1 3 26
![Page 57: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/57.jpg)
58Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 15 1 3 26
![Page 58: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/58.jpg)
59Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 26 15 1 3 26
![Page 59: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/59.jpg)
60Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 15 26 1 3 26
![Page 60: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/60.jpg)
61Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 15 26 1 3 26
![Page 61: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/61.jpg)
62Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 15 1 26 3 26
![Page 62: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/62.jpg)
63Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 15 1 26 3 26
Si en la última iteración realizada los últimos elementos intercambiados son los de las posiciones j y j+1, la siguiente sólo necesitará comparar hasta el j-1, j (a partir de ahí ya estáordenada)
![Page 63: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/63.jpg)
64Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 15 1 3 26 26
![Page 64: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/64.jpg)
65Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 15 1 3 26 26
![Page 65: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/65.jpg)
66Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 15 1 3 26 26
![Page 66: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/66.jpg)
67Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 1 15 3 26 26
![Page 67: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/67.jpg)
68Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 1 15 3 26 26
![Page 68: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/68.jpg)
69Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 1 3 15 26 26
![Page 69: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/69.jpg)
70Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
14 1 3 15 26 26
![Page 70: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/70.jpg)
71Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
1 14 3 15 26 26
![Page 71: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/71.jpg)
72Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
1 14 3 15 26 26
![Page 72: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/72.jpg)
73Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
1 3 14 15 26 26
![Page 73: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/73.jpg)
74Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
1 3 14 15 26 26
![Page 74: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/74.jpg)
75Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
1 3 14 15 26 26
![Page 75: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/75.jpg)
76Diego Gutiérrez
Método de la burbuja
Se recorre la tabla comparando la medida de dos elementos consecutivos, intercambiándolos si es necesario. El proceso se repite hasta que no se haga ningún intercambio (tabla ordenada)A diferencia de los algoritmos de selección e inserción directa, los elementos sólo se mueven una posición cada vez
1 3 14 15 26 26
![Page 76: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/76.jpg)
77Diego Gutiérrez
Método de la burbuja
Ineficiente
![Page 77: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/77.jpg)
78Diego Gutiérrez
Método de la burbuja
Algoritmo:
algoritmo Burbuja (referencia a: tpTabla; valor n: integer);variables
j: integer; {índice}aux: tpDato;ult_comp, ult_int: integer; {índices de la última pareja a comparar e intercambiada}
principioult_comp = (n-1) {comparo todos hasta el penúltimo} mientras que ult_comp>=1 hacer
ult_int = 1; {terminará si no hay más intercambios} para j=1 hasta ult_comp hacer
si condición_intercambio entonces aux:=a[j]; a[j]:=a[j+1]; a[j+1]:=aux;ult_int:=j; fsi fpara
ult_comp:=ult_int-1; fmqFin
a[j] > a[j+1]
![Page 78: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/78.jpg)
79Diego Gutiérrez
Método de la burbuja
Algoritmo:
algoritmo Burbuja (referencia a: tpTabla; valor n: integer);variables
j: integer; {índice}aux: tpDato;ult_comp, ult_int: integer; {índices de la última pareja a comparar e intercambiada}
principioult_comp = (n-1) {comparo todos hasta el penúltimo} mientras que ult_comp>=0 hacer
ult_int = 1; {terminará si no hay más intercambios} para j=1 hasta ult_comp hacer
si condición_intercambio entonces aux:=a[j]; a[j]:=a[j+1]; a[j+1]:=aux;ult_int:=j; fsi fpara
ult_comp:=ult_int-1; fmqFin
![Page 79: O cómo evitar tener que buscar una aguja en un pajar](https://reader036.vdocuments.net/reader036/viewer/2022080210/62e79baa74974c1dc309d4d6/html5/thumbnails/79.jpg)
80Diego Gutiérrez
Conclusiones: