Google+ Seguidores

viernes, 24 de agosto de 2018

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 

2 comentarios :
Write comentarios
  1. 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.

    ResponderEliminar
  2. 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.

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Powered by Blogger .