A veces nos encontramos que tenemos los datos que almacenamos o recuperamos de una aplicación desordenados, sin ningún orden lógico, y necesitamos organizarlos y/o clasificarlos para procesarlos correctamente o usarlos más eficientemente.
Con el Máster de Programación avanzada en Python, Hacking, Big Data y Machine Learning podrás convertirte en un experto ampliamente cualificado para realizar trabajos de programación en Python especializado en las áreas punteras como el Big Data, Hacking y Machine Learning.
Tipos de algoritmos de ordenación en Python
Hoy vamos a conocer los algoritmos de ordenación más habituales:
- Ordenamiento de burbuja (Bubble Sort)
- Orden de selección (Selectión Sort)
- Tipo de inserción (Insert Sort)
- Combinar ordenación (Merge Sort)
Ordenamiento de burbuja (Bubble Sort)
Este algoritmo de clasificación simple itera sobre la lista de datos, comparando elementos en pares hasta que los elementos más grandes “burbujean” hasta el final de la lista y los más pequeños permanecen al principio.
Comienza comparando los dos primeros elementos de la lista, si el primer elemento es mayor que el segundo, los intercambiamos, si no, se quedan como están. Luego pasamos al siguiente par de elementos, los comparamos e intercambiamos si fuera necesario.
El bucle while se rompe cuando no se han intercambiado elementos.
Orden de selección (Selectión Sort)
Este algoritmo separa la lista en dos partes, ordenada y no ordenada. Continuamente “elimina” el elemento más pequeño de la parte sin ordenar y lo agrega a la parte ordenada.
Lo que realmente realiza este algoritmo es tratar la parte izquierda de la lista como la parte ordenada buscando en toda la lista el elemento más pequeño y poniéndolo el primero. Después, sabiendo que ya tenemos el elemento más pequeño el primero, buscamos en toda la lista el elemento más pequeño de los restantes sin ordenar y lo intercambiamos con el siguiente ordenado y así hasta acabar con la lista.
Cuantos más elementos tengamos ordenados, menos elementos tendremos que examinar.
Tipo de inserción (Insert Sort)
Este algoritmo, al igual que la clasificación por selección, separa la lista en dos partes, ordenadas y no ordenadas. También suponemos que el primer elemento está ordenado, luego pasamos al siguiente elemento que lo vamos a llamar X, comparamos X con el primero, si es mayor, se queda como está pero si es más pequeño, copiamos el primer elemento en la segunda posición e insertamos X como primero.
Combinar ordenación (Merge Sort)
Este algoritmo comienza dividiendo la lista en dos, luego esas dos mitades en 4 y así sucesivamente hasta que tengamos listas de un elemento de longitud. Después, estos elementos se vuelven a unir en orden. Primero fusionaremos los elementos individuales en pares de nuevo ordenándolos entre sí, luego seguiremos ordenándolos en grupos hasta que tengamos una sola lista ordenada.
El resultado con cualquiera de los algoritmos sería el siguiente:
esta chupiguay! repetiria
El diseñador de la web debe estar muy orgulloso de cómo se ve en landspace en el móvil. Calidad tu! 😓
El algoritmo de insercion no da ese resultado, a menos que el primer elemento sea el mas pequeño, ej: 1, si es otro numero no lo ordena