Ir al contenido principal

Estructuras en programación, ejemplo de Metodo burbuja con Python

Como hemos visto en post anteriores la programación es una abstracción de algo o la simulación o semejanza al comportamiento de un proceso en esta ocasión vamos a ver como es que podemos guardar datos y procesarlos en programación.
Los tipos de estructuras más comunes son:

  • Pila
  • Cola
  • Arboles
  • Arreglos o Matrices unidimensional y N-dimensional
  • Grafos 


Una pila y Cola son como un torre de cubos lo que las diferencia es la forma en que se leen los datos de una Cola se toma el que está hasta arriba y se dice que es el primero en entrar es el primero en salir o un FIFO.


Una Pila es el último en entrar es el primero en salir o LIFO


Para fines prácticos la Cola es como una fila en el supermercado y la pila es como cuando guardan su ropa limpia y se ponen siempre lo último que lavaron.

Estas estructuras nos sirven porque por ejemplo en un banco, supermercado si quisiéramos implementar un sistema de turnos tendríamos que abstraer esto y lo veríamos como una Cola. Para una pila un ejemplo es un sistema de inventarios consumir el material más cercano.

Puede ser más complejo y poner pesos a valor a cada espacio en nuestras estructuras para que no sólo considere la ubicación sino también la que tenga el valor más alto por ejemplo si hiciéramos un sistema de turnos en un hospital hay que tomar en cuenta la gravedad del paciente. 

Los arreglos o las matrices son como una fila en Excel es decir tiene coordenadas que son una letra y un numero y una matriz es cuando hacemos una tabla en Excel es decir n número de filas por m número de columnas. Este es la estructura que mas he utilizado a lo largo de mi vida profesional, en sin número de programas.

Los árboles son semejantes a un árbol con sus ramas y hojas, identificando cuando una tarea es dependiente de otra y como llenar al punto final por ejemplo, nos sirve para Inteligencia artificial.
Para los grafos , son una maravilla nos ayudan a representar rutas por ejemplo cual es la mejor ruta para llegar a un destino, cual es la ruta critica en un Proyecto 

Así vemos a un grafo en la imagen un problema a resolver es como llegar del punto al punto de la manera más fácil. 

Hay grafos no dirigidos y dirigidos, el de la imagen es no dirigido es decir no tiene dirección o no hay flechas en el diagrama.

Hay grafos regulares e irregulares, cuando es regular es que tiene el mismo número de conexiones o valencias en todos los nodos, en el caso de la imagen es un grafo irregular. 

Vamos hacer un ejemplo una cola, recuerdo que en la universidad lo vi con Java, pero eso será en un post más adelante cuando veamos ese lenguaje.

De momento les voy a compartir un ejemplo en Python del algoritmo de ordenamiento donde utilizaremos la estructura de una matriz unidimensional (que es la más sencilla), este ordenamiento se llama Burbuja o Bubble Sort 

Este algoritmo lo que hace es ir recorriendo la matriz y compara el arreglo o matriz en la primera posición vs la segunda y si es menor lo mueve al inicio si no lo deja igual, despues en la segunda iteración compara la primera, segunda y tercera posición para colocar al inicio la mas pequeña, veamos un ejemplo 
Nuestro arreglo es 72,8,86,79,46,10,37,40,19:


La corrida a mano es la siguiente 




El programa en Python es:

def ordburbuja(lista):
    for dato in range(len(lista)-1,0,-1):
        for i in range(dato):
            if lista[i]>lista[i+1]:
                temp = lista[i]
                lista[i] = lista[i+1]
                lista[i+1] = temp

lista = [72,8,86,79,46,10,37,40,19]
ordburbuja(lista)
print(lista)

Ejecución del Programa






Hace algunos años cuando comenzaba mis entrevistas de trabajo, recuerdo que en algún examen me pidieron escribir el seudocodigo de un ordenamiento de burbuja, no es que tengan que memorizar el programa pero si entender la lógica del algoritmo, pueden perder sus programas pero no lo que saben. 

Todos estas estructuras que vimos en el post son ejemplos de paradigmas en la programación o la representación en la programación que simula algo de la vida real, o algún comportamiento,o alguna forma eso quiere decir abstracción, darle una representación a lo "real" por lo menos de esta dimensión. 

Espero les haya sido de utilidad este post, nos dejen sus comentarios o dudas y nos comportan, buena semana programadores.

No olvide compartirnos y seguirnos en este blog o en Facebook.

Comentarios

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas