Algoritmos de ordenación en Python

Algoritmos y programas

Definición 1: Un algoritmo es un conjunto ordenado de pasos o instrucciones ejecutables y no ambiguas.

 

Definición 2: Un algoritmo es un un método con un conjunto de instrucciones utilizadas para resolver un problema específico

 

Un programa de computadora es la representación concreta de un algoritmo escrito en un lenguaje de programación

Algoritmos de ordenación

La ordenación es un proceso que organiza una colección de datos en un orden ascendente o descendente.

Desordenado

Ordenado (ascendente)

[ 90, 70, 0, 80, 60, 85 ]

[ 0, 60, 70, 80, 85, 90 ]

Método burbuja

Consiste en comparar los elementos adyacentes los cuales se intercambia de posición si el primer elemento es mayor al segundo.

[ 70, 90, 0, 80, 60, 85 ]

Conclusión

Método burbuja

  • Compara en cada pasada todos los elementos sin importar si ya están ordenados.
  • Se utiliza para introducir a los estudiantes a los algoritmos de ordenación

Ordenación por Selección

Consiste en seleccionar el menor de todos los elementos de la lista desordenada e intercambiarlo con el que está en la primera posición. Luego el segundo mas pequeño, y así sucesivamente hasta ordenarlo todo

Ordenación por Selección

  • Seleccionar un valor_mínimo
  • Comparar el valor_mínimo actual con el resto de elementos de la lista
  • Si el valor_mínimo actual es mayor a alguno de los otros elementos, el valor_minimo se cambiará por el otro valor más chico
  • Intercambiar valor_mínimo con la posición que le corresponde
  • Se necesitan n-1 y n-1 comparaciones en cada pasada

Funcionamiento general

Conclusión

Selección

  • El método por selección mejora al de ordenamiento burbuja haciendo un sólo intercambio por cada pasada a través de la lista

Ordenación por Inserción

En éste algoritmo el primer elemento se considera ordenado.

Luego, se toma el siguiente elemento sin ordenar

lo compara con el o los elementos ordenados y inserta en su respectiva posición.

[ 70, 0, 90, 80, 60, 85 ]

  • 70 se considera ordenado
  • 0 es el siguiente elemento sin ordenar
  • se compara 0 < 70
  • 70 se recorre una posición ("dejando un espacio")
  • al valor 0 le toca insertarse en la posición de 70

Conclusión

Inserción

  • Éste algoritmo realiza el número máximo de comparaciones y movimientos cuando los elementos del arreglo están en orden inverso
  • En el mejor de los casos, sólo se necesita hacer una comparación en cada pasada (si la lista ya está ordenada)
  • Importante diferenciar entre desplazamiento e intercambio. En general, un desplazamiento requiere aproximadamente un tercio de la carga de procesamiento que intercambio.

Algoritmos de ordenación básicos (Python)

By Carlos Hernández

Algoritmos de ordenación básicos (Python)

  • 186