Tools for learning about algorithms and data structures
Project description
algoaid
A collection of useful tools for students taking an introductory course in algorithms and data structures.
Installation
pip install algoaid
Features
- Time complexity analysis of functions
- Graphs
- Represent: [weighted] [un]directed, disjoint-set/union find
- Easy to input a graph
- Run basic graph algorithms (DFS, BFS, MST, Dijkstra's and more)
- Visualise results
- Versatile Min/Max-heap with
decrease/increase
key functionality
Modules
- Time complexity:
analyse
- Graph class:
Graph
- Priority queues:
MinHeap
,MaxHeap
Usage: Time Complexity Analysis
Analyse time complexity of a function with a single parameter:
1. Import
from algoaid import analyse
2. Define a Function
def f(n):
j = 1
while j * j < n:
j += 1
3. Analyse
analyse(f)
Example Result
Usage: Graphs
Construct various types of graphs and run a selection of popular graph algorithms:
1. Import
from algoaid import Graph
2. Declare the Graph (each line represents an edge)
edges = """
0..2 6
0..1 1
0..5 2
.
.
.
2..5 4
"""
Syntax:
- Undirected:
[node1]..[node2] [weight (optional)]
- Directed:
[from]..[to] [weight (optional)]
- Disjoint-set:
[parent]..[child]
3. Construct the Graph
# construct undirected graph
g = Graph(edges, type=Graph.GraphType.GRAPH)
# construct directed graph
g = Graph(edges, type=Graph.GraphType.DI_GRAPH)
# construct disjoint set
g = Graph(edges, type=Graph.GraphType.DISJOINT_SET)
4. Display the Graph
g.display("My Graph")
5. Run Algorithms
# Run DFS from node 0
g.dfs_tree("0")
# Run BFS from node 0
g.bfs_tree("0")
# Compute MST (requires a weighted undirected graph)
g.mst_tree()
# Run Dijkstra's algorithm from node 0 (requires a weighted graph)
g.dijkstra_tree("0")
# Topological sorting (requires a directed graph)
g.topological_sort()
# Find with path compression (requires disjoint-set)
g.show_find("6")
# Union (requires disjoint-set)
g.show_union("9", "11")
Example Results
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
algoaid-1.0.2.tar.gz
(8.3 kB
view hashes)