ALGORITHMS - Implementaciones de algoritmos y Estructuras de Datos
Introducción:
Hola amigos de Internet. Les doy la bienvenida a Mi Diario Python, el mejor blog para Aprender Python.
En este articulo, le echaremos un vistazo a la librería algorithms, la cual es una colección de implementaciones de algoritmos y estructuras de datos. Todo escrito en Python.
Hace mucho que no hago articulo de este tipo, los cuales de cierto modo son entretenidos y nos permiten ver el trabajo de otras personas.
Instalación de algorithms:
Para instalar la librería algorithms basta con ejecutar el siguiente comando:
$ pip install algorithms
Utilizando algorithms:
Una vez que tengamos instalada la librería podemos acceder a cada uno de sus métodos e implementaciones.
Empecemos por algo sencillo.
# Algoritmo de ordenamiento Merge Sort from algorithms.sort import merge_sort lista = [1,8,3,5,6] lista_ordenada = merge_sort(lista) print(lista_ordenada)
[1, 3, 5, 6, 8]
El anterior código corresponde a una demostración del uso del algoritmo merge sort, el cual ya hemos visto y analizado anteriormente.
Como pueden observar, es muy fácil utilizar la librería. Solo debemos importar los métodos que utilizaremos, este caso merge_sort.
En algorithms.sort podemos acceder a todas las implementaciones de los algoritmos de ordenamiento. Por ejmeplo, a continuación les mostrare como utilizar el ordenamiento burbuja:
# Algorito de ordenamiento - Ordenamiento Burbuja from algorithms.sort import bubble_sort nums = [1,8,3,5,6] nums_ordenados = bubble_sort(nums) print(nums_ordenados)
[1, 3, 5, 6, 8]
Como pueden observar es muy fácil y sencillo.
Podemos ver todos los algoritmos de ordenamiento disponibles utilizando el método doc:
import algorithms.sort dir(algorithms.sort)
['BLACK', 'GRAY', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'bogo_sort', 'bubble_sort', 'bucket_sort', 'cocktail_shaker_sort', 'comb_sort', 'counting_sort', 'gnome_sort', 'heap_sort', 'insertion_sort', 'max_heap_sort', 'max_heapify', 'merge', 'merge_sort', 'min_heap_sort', 'min_heapify', 'next_sort', 'partition', 'quick_sort', 'quick_sort_recur', 'radix_sort', 'random', 'selection_sort', 'shell_sort', 'top_sort', 'top_sort_recursive']
Pythagoras:
Otro método muy interesante que nos ofrece algorithms es el de pythagoras, que como habrás es una implementación del teorema de pitagoras:
from algorithms.maths import pythagoras opuesto = 8 adyacente = 6 hipotenusa = "?" resultado = pythagoras(opuesto, adyacente, hipotenusa) print(resultado)
Hypotenuse = 10.0
Su uso es muy sencillo. Solo debemos utilizar el método pythagoras y pasarle como argumento los datos. En este caso disponemos del lado opuesto y adyacente del triangulo rectángulo, y para la hipotenuso hemos introducido un "?" para indicarle que ese es el valor que deseamos calcular.
Pero como podemos calcular la hipotenusa, podemos calcular cualquiera de los otros lados. En el siguiente ejemplo, calcularemos el lado adyacente del triangulo rectángulo:
from algorithms.maths import pythagoras opuesto = 9 adyacente = "?" # Incognita hipotenusa = 15 resultado = pythagoras(opuesto, adyacente, hipotenusa) print(resultado)
Adjacent = 12.0
Algoritmos de Búsqueda:
# Algoritmo de busqueda - Busqueda binaria from algorithms.search import binary_search lista = [1,2,43,67,88,123] resultado = binary_search(lista, 67) print(resultado)
3
# Algoritmo de Busqueda - Jump Search from algorithms.search import jump_search lista = [1,2,43,67,88,123] resultado = jump_search(lista, 67) print(resultado)
3
Estos dos son algunos de los algoritmos de búsqueda disponibles.
La librería algorithms esta compuesta por mas de 250 imeplentaciones y algoritmos.
Puedes encontrar todas la implementaciones y algoritmos desde su repositorio: https://github.com/keon/algorithms.
¿Que esperas? Ve y prueba todos.
Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes
-
Excelente tu aporte, me gustaria que escribieras acerca de los bot de Telegram con python. Quisera implementar algo asi para mi residencia, es decir controlar las luces de mi casa, a traves de Telegram.
Deja una respuesta
Muchas gracias por su esfuerzo de mantenernos siempre informados y mostrarnos como funciona cada tema que selecciona que son buenísimos en realidad, un abrazo.