Metadata-Version: 2.4
Name: nickalgo
Version: 0.2.0
Summary: A Python algorithm source-code library for learning and reference
Author: Nikhil Gupta
License: MIT License
        
        Copyright (c) 2026 Nikhil Gupta
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
        
Keywords: algorithms,data-structures,education,source-code
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# nickalgo

Install with `python -m pip install nickalgo`.

```python
import nickalgo as np

dp = np.quicksort
print(dp)  # formatted source code string

sort = np.get_function("quicksort")
print(sort([5, 2, 8, 1]))
print(np.list_algorithms())
```

Algorithm source strings include sorting, matrix multiplication, selection/randomized
algorithms, binary trees and BSTs, graph traversal/MSTs, pattern matching, dynamic
programming, Huffman coding, activity selection, set cover, subset sum, and vertex cover.

Notes: `radixsort` accepts non-negative integers. Strassen multiplication expects equal
square matrices whose dimension is a power of two. `set_cover` and `vertex_cover` are
greedy approximations, not guaranteed optimal. `montecarloproblem` estimates pi from
sample counts. Some names are normalized to Python identifiers such as `kth_largest`.
