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