En este post de programación en Python veremos cómo ordenar un arreglo, array o lista usando el algoritmo de selección, ordenamiento por selección o como le llames.
Este algoritmo para ordenar arreglos en Python es más rápido que el método de la burbuja, pues realiza menos recorridos.
Te mostraré cómo implementar este algoritmo para hacer un ordenamiento ascendente y descendente con ejemplos para listas de cadenas y números.
Nota: voy a usar arreglo, array y lista como sinónimos.
Vamos a usar dos ciclos. El primero va desde 0 hasta la longitud del arreglo menos dos (cada paso del ciclo estará en una variable que llamaremos i
).
Ahora, dentro de ese ciclo, hacemos otro ciclo que va desde i + 1
hasta la longitud del arreglo menos uno. Guardaremos el paso del ciclo en j
.
Finalmente dentro de esos dos ciclos hacemos la comparación del arreglo en i
con el arreglo en j
y en caso de que se cumpla, intercambiamos los valores.
En cuanto al orden: si queremos un orden ascendente, comparamos si lista[i]
es mayor que lista[j]
. Y si queremos un orden descendente, comparamos si lista[i]
es menor que lista[j]
.
Ahora que hemos explicado el algoritmo, veamos la función del ordenamiento por selección en Python. En este caso vamos a recibir una lista y la ordenaremos internamente, así que el método no regresará nada.
Primero calculamos la longitud con len, luego hacemos el primer ciclo en la línea 3. En este caso range
siempre iterará hasta el límite menos uno, por ello es que no estoy restando 2 a la longitud, solo le estoy restando 1.
Finalmente el intercambio se produce en la línea 7. En este caso la lista quedará ordenada de manera ascendente, es decir, de menor a mayor.
La función es casi igual; únicamente cambia el signo de comparación, quedando así:
Podemos ordenar arreglos de cualquier tipo (incluso de objetos, si implementamos a __eq__ correctamente). Aquí te muestro algunos ejemplos del ordenamiento por selección en Python, en el primer caso es un arreglo de enteros y en el segundo es un array de cadenas:
El código completo junto con la definición de los métodos y la prueba del orden queda así:
Si quieres puedes probarlo aquí, o leer más sobre Python en mi blog. Por cierto, ya he implementado el quicksort, método de la burbuja y otros usando Python.
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Esta web usa cookies.