Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsa_daa_kit-0.1.0.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsa_daa_kit-0.1.0-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

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

Hashes for dsa_daa_kit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cfe3c456deb9fa87f27f818a8e15bb93223b3aeb29c751664fa10dfbaf1ba4e4
MD5 f708aad6aec9dc638a53b22f59913028
BLAKE2b-256 0212a8b1298cf543c3c42030e6aa1350d2b7dba47dddcafc1604f44ac49f13d1

See more details on using hashes here.

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

Hashes for dsa_daa_kit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0f34929475eadec2aae671d18ae52d8f5b45c3617491d0bafd9da7461e04ff7
MD5 ff68eb3ebadd0df46e039c8405c6ee1a
BLAKE2b-256 e8a4b0470552e21384769420c83a8c7ba19a00d452457ad88271573d07dad054

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page