Está en la página 1de 76

Ordenamiento

Ordenar una estructura de datos consiste en reacomodar sus


elementos de acuerdo a algún criterio.
Por ejemplo, los mensajes pueden ordenarse por asunto, por
fecha, por contacto.
Si varios elementos coinciden de acuerdo al criterio, pueden

Orientada a Objetos
Introducción a la Programación
definirse niveles de criterios.
Por ejemplo, los mensajes pueden ordenarse
alfabéticamente por asunto y dentro de un mismo asunto,
cronológicamente por fecha.
Existen distintos algoritmos de ordenamiento, que pueden
describirse independientemente del problema.
Ordenamiento
Los algoritmos de ordenamiento resultan un tema de
interés por varios motivos:
•Son importantes en diversas aplicaciones, en particular en
el área de Bases de Datos, en donde los requerimientos de
eficiencia hacen del ordenamiento un tema crítico.

Orientada a Objetos
Introducción a la Programación
•Existen muchísimos métodos para resolver el mismo
problema y por lo tanto es un tema interesante para
introducir nociones de tiempo de ejecución y eficiencia.
•Permiten ilustrar temas importantes de Resolución de
Problemas.
Ordenamiento: Método de la Burbuja
El método de ordenamiento burbuja consiste en comparar
cada elemento de la estructura con el siguiente e
intercambiándolos si corresponde.
El proceso se repite hasta que la estructura esté ordenada.
El orden se establece de acuerdo a la clave y la estructura

Orientada a Objetos
Introducción a la Programación
tiene que tener acceso directo a sus componentes.
Ordenamiento: Método de la Burbuja

1014
5226
1020

Orientada a Objetos
Introducción a la Programación
1012
1015
Ordenamiento: Método de la Burbuja

1014
5226
1020

Orientada a Objetos
Introducción a la Programación
1012
1015
Ordenamiento: Método de la Burbuja

1014
5226
1020

Orientada a Objetos
Introducción a la Programación
1012
1015
Ordenamiento: Método de la Burbuja

1014
1020
5226

Orientada a Objetos
Introducción a la Programación
1012
1015
Ordenamiento: Método de la Burbuja

1014
1020
5226

Orientada a Objetos
Introducción a la Programación
1012
1015
Ordenamiento: Método de la Burbuja

1014
1020
5226

Orientada a Objetos
Introducción a la Programación
1012
1015
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
5226
1015
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
5226
1015
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
5226
1015
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
1015
5226
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
1015
5226

El último elemento está en su posición definitiva


Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
1015
5226

Repetimos el proceso pero ahora sin considerar el


último elemento de la estructura
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
1015
5226
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
1015
5226
Ordenamiento: Método de la Burbuja

1014
1020
1012

Orientada a Objetos
Introducción a la Programación
1015
5226
Ordenamiento: Método de la Burbuja

1014
1012
1020

Orientada a Objetos
Introducción a la Programación
1015
5226
Ordenamiento: Método de la Burbuja

1014
1012
1020

Orientada a Objetos
Introducción a la Programación
1015
5226
Ordenamiento: Método de la Burbuja

1014
1012
1020

Orientada a Objetos
Introducción a la Programación
1015
5226
Ordenamiento: Método de la Burbuja

1014
1012
1015

Orientada a Objetos
Introducción a la Programación
1020
5226

El cuarto elemento está en su posición definitiva


Ordenamiento: Método de la Burbuja

1014
1012
1015

Orientada a Objetos
Introducción a la Programación
1020
5226

En cada recorrido consideramos un elemento


menos
Ordenamiento: Método de la Burbuja

1014
1012
1015

Orientada a Objetos
Introducción a la Programación
1020
5226
Ordenamiento: Método de la Burbuja

1014
1012
1015

Orientada a Objetos
Introducción a la Programación
1020
5226
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
1020
5226
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
1020
5226
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
1020
5226
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
1020
5226
Ordenamiento: Método de la Burbuja

Algoritmo Burbuja

repetir mientras no este ordenada


para cada par de elementos adyacentes

Orientada a Objetos
Introducción a la Programación
si el elemento es mayor que el que sigue
intercambiar
Ordenamiento: Método de la Burbuja
Refinamos el algoritmo para obtener una versión
más cercana a la implementación en Java

Algoritmo Burbuja
k n
repetir mientras no este ordenada
i 1

Orientada a Objetos
Introducción a la Programación
repetir mientras i < k
si Li es mayor que Li+1
Intercambiar

i i+1
k k-1
Ordenamiento: Método de la Burbuja
Refinamos el algoritmo para obtener una versión
más cercana a la implementación en Java

Algoritmo Burbuja
k n
repetir mientras k > 1
i 1

repetir mientras i < k


si Li es mayor que Li+1
Intercambiar
i i+1
k k-1

Introducción a la Programación Orientada a Objetos


Ordenamiento: Método de la Burbuja

1012
5224
1012

Orientada a Objetos
Introducción a la Programación
1015
1016
Ordenamiento: Método de la Burbuja

1012
5224
1012

Orientada a Objetos
Introducción a la Programación
1015
1016
Ordenamiento: Método de la Burbuja

1012
1014
5224

Orientada a Objetos
Introducción a la Programación
1015
1016
Ordenamiento: Método de la Burbuja

1012
1014
5224

Orientada a Objetos
Introducción a la Programación
1015
1016
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
5224
1016
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
5224
1016
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
1016
5224
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
1016
5224
Ordenamiento: Método de la Burbuja

1012
1014
1015

Orientada a Objetos
Introducción a la Programación
1016
5224

Si no hay intercambios está ordenada


Ordenamiento: Método de la Burbuja
Algoritmo Burbuja

HuboIntercambios  true
k n
repetir mientras HuboIntercambios
i 1

Orientada a Objetos
Introducción a la Programación
HuboIntercambios  false
repetir mientras i < k
si Li es mayor que Li+1
Intercambiar
HuboIntercambios  true
i i+1
k k-1
Ordenamiento: Método de la Burbuja

balsa
velero
balsa

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
velero
balsa

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
velero

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
velero

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
velero
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
velero
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero

En cada recorrido consideramos un elemento menos


Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero

Si no hay intercambios está ordenada


Ordenamiento: Método de la Burbuja
Algoritmo Burbuja

HuboIntercambios  true
k n
repetir mientras HuboIntercambios
i 1
HuboIntercambios  false
repetir mientras i < k
si Li es mayor que Li+1
Intercambiar
HuboIntercambios  true
i i+1
k k-1
El algoritmo es genérico, independiente del tipo de los
elementos. Introducción a la Programación Orientada a Objetos
Ordenamiento: Método de la Burbuja
Algoritmo Burbuja

HuboIntercambios  true
k n
repetir mientras HuboIntercambios
i 1
HuboIntercambios  false
repetir mientras i < k
si Li es mayor que Li+1
Intercambiar
HuboIntercambios  true
i i+1
k k-1
La eficiencia puede mejorar si en cada recorrido interno
identificamos la posición del último intercambio.
Introducción a la Programación Orientada a Objetos
Ordenamiento: Método de la Burbuja

balsa
velero
balsa

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
velero
balsa

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
velero

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
velero

Orientada a Objetos
Introducción a la Programación
canoa
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
velero
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
velero
buque
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero

En cada recorrido consideramos un elemento menos


Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
canoa

Orientada a Objetos
Introducción a la Programación
buque
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero
Ordenamiento: Método de la Burbuja

balsa
balsa
buque

Orientada a Objetos
Introducción a la Programación
canoa
velero

Si no hay intercambios está ordenada


Ordenamiento: Método de la Burbuja
Algoritmo Burbuja

HuboIntercambios  true
k n
repetir mientras HuboIntercambios
i 1
HuboIntercambios  false
repetir mientras i < k
si Li es mayor que Li+1
Intercambiar
HuboIntercambios  true
i i+1
k k-1
El algoritmo es genérico, independiente del tipo de los
elementos. Introducción a la Programación Orientada a Objetos
Ordenamiento: Método de la Burbuja
Algoritmo Burbuja

HuboIntercambios  true
k n
repetir mientras HuboIntercambios
i 1
HuboIntercambios  false
repetir mientras i < k
si Li es mayor que Li+1
Intercambiar
HuboIntercambios  true
i i+1
k k-1
La eficiencia puede mejorar si en cada recorrido interno
identificamos la posición del último intercambio.
Introducción a la Programación Orientada a Objetos

También podría gustarte