Fundamentos de la Programación

#06 – Estructuras de Datos (II)

En esta entrega vamos a continuar estudiando las listas, que ya comenzamos en la anterior. Vamos a ver cómo ordenarlas, así como algunas herramientas útiles para el gestión de cadenas.

Listas (II)

Ordenación de una Lista

Ordenar listas es uno de los problemas más clásicos de la informática. Su importancia es tanta, que no se han dejado de investigar métodos que puedan mejorar la eficiencia de dicha operación. Aunque existen muchos métodos, aquí vamos a explicar el conocido como método de la burbuja, que, aunque resulta ineficiente en términos de coste computacional, es muy sencillo de implementar.

Nuestro objetivo es ordenar la siguiente lista:

lista inicial
  • Comenzamos comparando los dos primeros elementos, [0] y [1]. Si estos están ordenados, los dejamos tal cual, y si no se intercambian. En este caso, como 2 es menor que 5, no hacemos nada.
primera iteración
  • A continuación realizamos la misma acción con los siguientes, [1] y [2]. Al ser 5 mayor que 4, los intercambiamos.
segunda iteración
  • Seguimos realizando las mismas acciones, con los pares [2][3] y [3][4]. Llegados a este punto, la lista todavía no está ordenada. Pero, con estos pasos, nos hemos asegurado que el elemento mayor se sitúe al final de la misma.
Ordenación de listas mediante el método de la burbuja.
  • Ahora, se vuelven a realizar las mismas acciones, pero como el último elemento ya está ordenado, se omite.
Ordenación de listas mediante el método de la burbuja.
  • Ahora ya tenemos los dos últimos elementos en orden. Así que, como supondrás, volvemos a realizar las mismas acciones, pero omitiendo los dos últimos elementos.
Ordenación de listas mediante el método de la burbuja.
  • Y una última vez, omitiendo los tres últimos.
Ordenación de listas mediante el método de la burbuja.
  • ¡TACHAN! La lista está ordenada.
Ordenación de listas mediante el método de la burbuja.

Ahora tocaría traducir el anterior algoritmo a código en Python. No obstante, dado que el diseño del algoritmo ya está hecho, creo que es mejor dejarlo como uno de los ejercicios del curso. ¡Intenta hacerlo por tu cuenta antes de ver la solución!

Cadenas y Listas

Como ya se ha comentado, una cadena es un tipo especial de lista donde todos sus elementos son caracteres. Muchas veces, nos conviene convertir una lista en cadena o viceversa. Para ello, Python cuenta con una serie de utilidades que nos facilitan la vida.

Lista de palabras

Algo que se suele realizar bastante es la generación de una lista con todas las palabras de una oración (por ejemplo, para contarlas después). En Python contamos con la función split(). Esta función nos devuelve una lista con todas las palabras de una cadena separadas por espacios (o el carácter que nosotros le indiquemos).

cadena = "a b c d"
lista = cadena.split()

El anterior código nos crearía la lista [«a», «b», «c», «d»].

Unir palabras en una cadena

La función join() hace lo contrario a split(). En este caso, unirá en una cadena las palabras contenidas en una lista, utilizando para ello el carácter sobre el cual se ejecute la función. Para obtener la cadena original anterior, haríamos lo siguiente:

cadena = " ".join(lista)

Lista de caracteres

Existe una última función útil, la cual nos genera una lista con todos los caracteres de una cadena. Se trata de la función list(). El siguiente código nos generaría la lista [«a», «b», «c»]:

lista = list("abc")

Las funciones join(), split() y list() son muy útiles a la hora de trabajar con Python, así que asegurate de no olvidarlas.


Con esto terminamos de ver todo lo referente a las listas. Ha sido una entrada más corta que las anteriores, pero quería separar en una propia la ordenación de listas, por la importancia que tiene. Ahora, puedes realizar los ejercicios 6 (método de la burbuja) y 7, utilizando para ello el intérprete online OnlineGDB.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

back to top