A clean, modern, and DAA-friendly Python library that implements all major Data Structures and Algorithms (DSA) with tracing, operation counters, and benchmarking utilities.
Project description
DAA-Kit
A Modern Python Library for Data Structures & Algorithm Analysis
Designed by Venu Enugula
🚀 Overview
DAA-Kit is a modern, minimal, production-grade Python library that implements:
- Core Data Structures
- All major DSA algorithms
- Complete DAA syllabus algorithms
- Optional tracing, complexity counters, and state-wise execution logs
- Tools for benchmarking, experimenting, and visualizing algorithms
This makes it perfect for:
- ✅ DAA Lab programs
- ✅ Engineering semester exams
- ✅ Competitive programming
- ✅ Interview preparation
- ✅ Teaching & research
- ✅ Algorithm experimentation & analysis
📦 Key Features
1. Clean, readable implementations
Every algorithm is written with clarity, type hints, and clean code.
2. DAA-friendly tracing
Most algorithms support:
return_trace=True- Step-by-step execution logs
- Operation counters (comparisons, swaps, relaxations, recursive calls)
3. Unified API
Consistent naming across the library:
binary_search, merge_sort, dijkstra, knapsack_01, etc.
4. Built-in experiment tools
- Time complexity measurement
- Input-scaling experiments
- Auto-plotting (optional)
5. Modular structure
- Arrays
- Trees
- Graphs
- Dynamic Programming
- Greedy
- Backtracking
- Branch & Bound
📁 Repository Structure
src/
dsa_daa_kit/
arrays.py
greedy.py
graphs.py
dp.py
backtracking.py
branch_bound.py
...
tests/
test_arrays.py
test_graphs.py
test_dp.py
⚡ Installation
After uploading to PyPI:
pip install dsa-daa-kit
Or from source:
pip install -e .
✨ Quick Examples
Binary Search with tracing
from dsa_daa_kit.arrays import binary_search
index, trace = binary_search([1,3,5,7,9], 7, return_trace=True)
print(index) # 3
print(trace) # dumps all search steps
0/1 Knapsack (DP)
from dsa_daa_kit.dp import knapsack_01
value = knapsack_01([10, 20, 30], [60, 100, 120], 50)
print(value)
Dijkstra
from dsa_daa_kit.graphs import dijkstra
dist = dijkstra(graph, source=0)
print(dist)
📚 Included Algorithms
Arrays & Searching
- Linear Search
- Binary Search (iterative & recursive)
- Merge Sort
- Quick Sort
- Bubble, Insertion, Selection Sort
Linked Lists
- Singly, Doubly
- Insert, delete, reverse
Trees
- BST (insert, search, delete)
- Traversals (inorder, preorder, postorder)
- Heap + HeapSort
Graphs
- BFS, DFS
- Dijkstra, Bellman-Ford
- Kruskal, Prim
- Topological Sort
Greedy
- Activity Selection
- Fractional Knapsack
- Huffman Coding
Dynamic Programming
- 0/1 Knapsack
- Unbounded Knapsack
- LIS
- Matrix Chain Multiplication
- Coin Change
Backtracking
- N-Queens
- Subset Sum
- Sudoku Solver
- TSP (backtracking version)
Branch & Bound
- 0/1 Knapsack
- TSP
- Job Assignment Problem
🔍 Tracing & Complexity Tools
from dsa_daa_kit.utils.tracing import OperationCounter
counter = OperationCounter()
binary_search(arr, x, counter=counter)
print(counter.comparisons)
🧪 Testing
pytest
📜 License
This project is licensed under the MIT License.
👤 Author
Venu Enugula Python • ML • Systems • Algorithms
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dsa_daa_kit-0.1.0.tar.gz.
File metadata
- Download URL: dsa_daa_kit-0.1.0.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfe3c456deb9fa87f27f818a8e15bb93223b3aeb29c751664fa10dfbaf1ba4e4
|
|
| MD5 |
f708aad6aec9dc638a53b22f59913028
|
|
| BLAKE2b-256 |
0212a8b1298cf543c3c42030e6aa1350d2b7dba47dddcafc1604f44ac49f13d1
|
File details
Details for the file dsa_daa_kit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dsa_daa_kit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0f34929475eadec2aae671d18ae52d8f5b45c3617491d0bafd9da7461e04ff7
|
|
| MD5 |
ff68eb3ebadd0df46e039c8405c6ee1a
|
|
| BLAKE2b-256 |
e8a4b0470552e21384769420c83a8c7ba19a00d452457ad88271573d07dad054
|