18 - Listas: ordenamiento de sus elementos
ordenamiento de una lista de datos de mayor a menor o viceversa.
Última actualización
¿Te fue útil?
ordenamiento de una lista de datos de mayor a menor o viceversa.
Última actualización
¿Te fue útil?
Otro algoritmo muy común que debe conocer y entender un programador es el ordenamiento de una lista de datos.
El ordenamiento de una lista se logra intercambiando las componentes de manera que: lista[0] <= lista[1] <= lista[2] etc. El contenido de la componente lista[0] sea menor o igual al contenido de la componente lista[1] y así sucesivamente. Si se cumple lo dicho anteriormente decimos que la lista está ordenado de menor a mayor. Igualmente podemos ordenar una lista de mayor a menor.
Tengamos en cuenta que la estructura de datos lista en Python es mutable, eso significa que podemos modificar sus elementos por otros. Se puede ordenar tanto listas con componentes de tipo int, float como cadena de caracteres. En este último caso el ordenamiento es alfabético.
Se debe crear y cargar una lista donde almacenar 5 sueldos. Desplazar el valor mayor de la lista a la última posición.
La primera aproximación para llegar en el próximo problema al ordenamiento completo de una lista tiene por objetivo analizar los intercambios de elementos dentro de la lista y dejar el mayor en la última posición.
El algoritmo consiste en comparar si la primera componente es mayor a la segunda, en caso que la condición sea verdadera , intercambiamos los contenidos de las componentes.
Vamos a suponer que se ingresan los siguientes valores por teclado:
1200
750
820
550
490
En este ejemplo :
¿es 1200 mayor a 750? La respuesta es verdadera, por lo tanto intercambiamos el contenido de la componente 0 con el de la componente 1.
Luego comparamos el contenido de la componente 1 con el de la componente 2: ¿Es 1200 mayor a 820? La respuesta es verdadera entonces intercambiamos.
Si hay 5 componentes hay que hacer 4 comparaciones, por eso el for se repite 4 veces. Generalizando: si la lista tiene N componentes hay que hacer N-1 comparaciones.
Se debe crear y cargar una lista donde almacenar 5 sueldos. Ordenar de menor a mayor la lista.
Ahora bien como vimos en el problema anterior con los 4 elementos que nos quedan podemos hacer el mismo proceso visto anteriormente, con lo cual quedará ordenado otro elemento de la lista. Este proceso lo repetiremos hasta que quede ordenado por completo la lista.
Como debemos repetir el mismo algoritmo podemos englobar todo el bloque en otra estructura repetitiva.
Realicemos una prueba del siguiente algoritmo:
Una última consideración a este algoritmo de ordenamiento es que los elementos que se van ordenando continuamos comparándolos.
Crear una lista y almacenar los nombres de 5 países. Ordenar alfabéticamente la lista e imprimirla.
Cargar una lista con 5 elementos enteros. Ordenarla de menor a mayor y mostrarla por pantalla, luego ordenar de mayor a menor e imprimir nuevamente.
¿Porque repetimos 4 veces el for externo? Como sabemos cada vez que se repite en forma completa el for interno queda ordenada una componente de la lista. A primera vista diríamos que deberíamos repetir el for externo la cantidad de componentes de la lista , en este ejemplo la lista sueldos tiene 5 componentes. Si observamos, cuando quedan dos elementos por ordenar, al ordenar uno de ellos queda el otro automáticamente ordenado (podemos imaginar que si tenemos una lista con 2 elementos no se requiere el for externo, porque este debería repetirse una única vez).
Para plantear un algoritmo mas eficiente, como sabemos que cada que paso del for externo quedan organizados dos elementos, entonces hay una iteración menos (k-1) en el interno.
Ha llegado una parte fundamental , que es el momento donde uno desarrolla individualmente un algoritmo para la resolución de problemas. El tiempo a dedicar a esta sección ejercicios propuestos debe ser mucho mayor que el empleado a la sección de ejercicios resueltos. La experiencia dice que debemos dedicar el 80% del tiempo a la resolución individual de problemas y el otro 20% al análisis y codificación de problemas ya resueltos por otras personas.
Solicitar por teclado la cantidad de empleados que tiene la empresa . Crear y cargar una lista con todos los sueldos de dichos empleados. Imprimir la lista de sueldos ordenamos de menor a mayor.
Nota : Inténtalo tu mism@, esta es la mejor forma de aprender o si quieres ver otro algoritmo para solucionar el mismo problema.