Módulo Pygorithm en Python

El módulo Pygorithm es un módulo de Python escrito exclusivamente en Python y solo con fines educativos. Uno puede obtener el código, las complejidades de tiempo y mucho más simplemente importando el algoritmo requerido. Es una buena forma de empezar a aprender a programar en Python y comprender conceptos. El módulo Pygorithm también puede ayudar a aprender la implementación de todos los algoritmos principales en el lenguaje Python.

Para instalar el módulo Pygorithm:

pip3 install pygorithm

Ejemplo:

# import the required data structure
from pygorithm.data_structures import stack
  
  
# create a stack with default stack size 10
myStack = stack.Stack()
  
# push elements into the stack
myStack.push(2)
myStack.push(5)
myStack.push(9)
myStack.push(10)
  
# print the contents of stack
print(myStack)
  
# pop elements from stack
myStack.pop()
print(myStack)
  
# peek element in stack
print(myStack.peek())
  
# size of stack
print(myStack.size())

Producción:

2 5 9 10
2 5 9
9
3

 
Para ver todas las funciones disponibles en un módulo, simplemente escriba help()con el nombre del módulo como argumento.

# Help on package pygorithm.data_structures
help(data_structures)

Producción:

NAME
    pygorithm.data_structures - Collection of data structure examples

PACKAGE CONTENTS
    graph
    heap
    linked_list
    quadtree
    queue
    stack
    tree
    trie

DATA
    __all__ = ['graph', 'heap', 'linked_list', 'queue', 'stack', 'tree', '...

Para obtener código para cualquiera de estas estructuras de datos usando get_code().

# to get code for BinarySearchTree
BStree = tree.BinarySearchTree.get_code()
  
print(BStree)

Producción:

class BinarySearchTree(object):
   
    def __init__(self):
        self.root = None

    def insert(self, data):
        """
        inserts a node in the tree
        """
        if self.root:
            return self.root.insert(data)
        else:
            self.root = BSTNode(data)
            return True

    def delete(self, data):
        """
        deletes the node with the specified data from the tree
        """
        if self.root is not None:
            return self.root.delete(data)

    def find(self, data):
        if self.root:
            return self.root.find(data)
        else:
            return False

    def preorder(self):
        """
        finding the preorder of the tree
        """
        if self.root is not None:
            return self.root.preorder(self.root)

    def inorder(self):
        """
        finding the inorder of the tree
        """
        if self.root is not None:
            return self.root.inorder(self.root)

    def postorder(self):
        """
        finding the postorder of the tree
        """
        if self.root is not None:
            return self.root.postorder(self.root)
    
    @staticmethod
    def get_code():
        """
        returns the code of the current class
        """
        return inspect.getsource(BinarySearchTree)

 
Para obtener complejidades para los siguientes scripts:

# create a stack with default stack size 10
Bsort = sorting.bubble_sort.time_complexities()

Producción:

Best Case: O(n), Average Case: O(n ^ 2), Worst Case: O(n ^ 2).

For Improved Bubble Sort:
Best Case: O(n); Average Case: O(n * (n - 1) / 4); Worst Case: O(n ^ 2)

Enlace rápido al código fuente de Pygorithm

Publicación traducida automáticamente

Artículo escrito por Shantanu Sharma. y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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