# pyDSAlgo: Your One-Stop Solution for Data Structures and Algorithms in Python
`pyDSAlgo` is a comprehensive Python library offering robust implementations of numerous data structures and algorithms. It serves as a reliable tool for educators, students, developers, and anyone keen on mastering or utilizing these foundational computer science concepts.
## ๐ Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Testing](#testing)
- [Contributing](#contributing)
- [Credits](#credits)
- [License](#license)
- [Contact](#contact)
## ๐ Features
### Data Structures:
- **Graph**: Traverse complex networks.
- `PyGraph.py`
- `PyLinkedGraph.py`
- **Heap**: Efficient data management.
- `PyMaxHeap.py`
- `PyMinHeap.py`
- **LinkedList**: Flexible data storage.
- `PyCircularLinkedList.py`
- `PyDoublyCircularLinkedList.py`
- `PyDoublyLinkedList.py`
- `PyHeaderLinkedList.py`
- `PyLinkedList.py`
- `PySkipLinkedList.py`
- **Queue**: FIFO data handling.
- `PyCircularQueue.py`
- `PyDeque.py`
- `PyPriorityQueue.py`
- `PyQueue.py`
- **Stack**: LIFO data access.
- `PyStack.py`
- `pyLinkedStack.py`
- **Tree**: Hierarchical data modeling.
- `PyAVLTree.py`
- `PyBTree.py`
- `PyBinarySearchTree.py`
- `PyBinaryTree.py`
- `PyGenericTree.py`
- **Trie**: Rapid text retrieval.
- `PyTrie.py`
### Algorithms:
#### Searching:
- **Binary Search**: `PyBinarySearch.py`
- **Jump Search**: `PyJumpSearch.py`
- **Linear Search**: `PyLinearSearch.py`
- **Fibonacci Search**: `PyFibonacciSearch.py`
- **Exponential Search**: `PyExponentialSearch.py`
- **Ternary Search**: `PyTernarySearch.py`
- **Meta Binary Search**: `PyMetaBinarySearch.py`
- **Sentinel Linear Search**: `PySentinelLinearSearch.py`
- **Interpolation Search**: `PyInterpolationSearch.py`
#### Sorting:
- **BogoSort**: `PyBogoSort.py`
- **Odd-Even Sort**: `PyOddEvenSort.py`
- **Sleep Sort**: `PySleepSort.py`
- **Insertion Sort**: `PyInsertionSort.py`
- **Tree Sort**: `PyTreeSort.py`
- **Pigeonhole Sort**: `PyPigeonholeSort.py`
- **3-Way Merge Sort**: `Py3WayMergeSort.py`
- **Cycle Sort**: `PyCycleSort.py`
- **Stooge Sort**: `PyStoogeSort.py`
- **Merge Sort**: `PyMergeSort.py`
- **Comb Sort**: `PyCombSort.py`
- **Tag Sort**: `PyTagSort.py`
- **Cocktail Sort**: `PyCocktailSort.py`
- **Radix Sort**: `PyRadixSort.py`
- **Bubble Sort**: `PyBubbleSort.py`
- **Selection Sort**: `PySelectionSort.py`
- **Bingo Sort**: `PyBingoSort.py`
- **QuickSort**: `PyQuickSort.py`
- **Counting Sort**: `PyCountingSort.py`
- **Bucket Sort**: `PyBucketSort.py`
- **Gnome Sort**: `PyGnomeSort.py`
- **HeapSort**: `PyHeapSort.py`
- **Bitonic Sort**: `PyBitonicSort.py`
- **Strand Sort**: `PyStrandSort.py`
- **Shell Sort**: `PyShellSort.py`
- **TimSort**: `PyTimSort.py`
- **Pancake Sort**: `PyPancakeSort.py`
## ๐ง Installation
```bash
pip install pyDSAlgo
```
## ๐ Usage
### Data Structures:
```python
from pyDSAlgo.DS.Stack.PyStack import PyStack
# Create a new stack
stack = PyStack()
# Push elements onto the stack
stack.push(1)
stack.push(2)
stack.push(3)
# Pop an element from the stack
print(stack.pop()) # Output: 3
```
### Algorithms:
```python
from pyDSAlgo.Algo.Sorting.PyBubbleSort import PyBubbleSort
# Sample list to be sorted
sample_list = [64, 34, 25, 12, 22, 11, 90]
# Apply bubble sort
sorted_list = PyBubbleSort(arr=sample_list).sort()
print(sorted_list) # Output: [11, 12, 22, 25, 34, 64, 90]
```
## ๐งช Testing
All implementations come with corresponding test files located in the `tests` directory, ensuring reliability and correctness.
## ๐ค Contributing
We welcome and value contributions from the open-source community. Your input, whether it's a bug fix, feature addition, or documentation improvement, helps enhance `pyDSAlgo`.
## ๐ Credits
Crafted with โค๏ธ by [Sattyam Jain](https://www.linkedin.com/in/sattyamjain/).
## ๐ License
Licensed under the [MIT License](https://github.com/sattyamjjain/pyDSAlgo/blob/main/LICENSE).
## ๐ Contact
For feedback or queries, [contact us](https://www.linkedin.com/in/sattyamjain/). We're always eager to connect!
Raw data
{
"_id": null,
"home_page": "https://github.com/sattyamjjain/pyDSAlgo",
"name": "PyDSAlgo",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "pydsa,pydsalgodsa,data structure,algo,algorithm,ds,python data structure",
"author": "Sattyam Jain",
"author_email": "sattyamjain96@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8b/cd/c2a4b0444524fee49a4433b18f0c6baef9608b765662372e64d0d0cfae45/PyDSAlgo-1.1.0.tar.gz",
"platform": null,
"description": "\n# pyDSAlgo: Your One-Stop Solution for Data Structures and Algorithms in Python\n\n`pyDSAlgo` is a comprehensive Python library offering robust implementations of numerous data structures and algorithms. It serves as a reliable tool for educators, students, developers, and anyone keen on mastering or utilizing these foundational computer science concepts.\n\n## \ud83d\udccb Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Testing](#testing)\n- [Contributing](#contributing)\n- [Credits](#credits)\n- [License](#license)\n- [Contact](#contact)\n\n## \ud83c\udf1f Features\n\n### Data Structures:\n\n- **Graph**: Traverse complex networks. \n - `PyGraph.py`\n - `PyLinkedGraph.py`\n \n- **Heap**: Efficient data management.\n - `PyMaxHeap.py`\n - `PyMinHeap.py`\n \n- **LinkedList**: Flexible data storage.\n - `PyCircularLinkedList.py`\n - `PyDoublyCircularLinkedList.py`\n - `PyDoublyLinkedList.py`\n - `PyHeaderLinkedList.py`\n - `PyLinkedList.py`\n - `PySkipLinkedList.py`\n \n- **Queue**: FIFO data handling.\n - `PyCircularQueue.py`\n - `PyDeque.py`\n - `PyPriorityQueue.py`\n - `PyQueue.py`\n \n- **Stack**: LIFO data access.\n - `PyStack.py`\n - `pyLinkedStack.py`\n \n- **Tree**: Hierarchical data modeling.\n - `PyAVLTree.py`\n - `PyBTree.py`\n - `PyBinarySearchTree.py`\n - `PyBinaryTree.py`\n - `PyGenericTree.py`\n \n- **Trie**: Rapid text retrieval.\n - `PyTrie.py`\n\n### Algorithms:\n\n#### Searching:\n\n- **Binary Search**: `PyBinarySearch.py`\n- **Jump Search**: `PyJumpSearch.py`\n- **Linear Search**: `PyLinearSearch.py`\n- **Fibonacci Search**: `PyFibonacciSearch.py`\n- **Exponential Search**: `PyExponentialSearch.py`\n- **Ternary Search**: `PyTernarySearch.py`\n- **Meta Binary Search**: `PyMetaBinarySearch.py`\n- **Sentinel Linear Search**: `PySentinelLinearSearch.py`\n- **Interpolation Search**: `PyInterpolationSearch.py`\n\n#### Sorting:\n\n- **BogoSort**: `PyBogoSort.py`\n- **Odd-Even Sort**: `PyOddEvenSort.py`\n- **Sleep Sort**: `PySleepSort.py`\n- **Insertion Sort**: `PyInsertionSort.py`\n- **Tree Sort**: `PyTreeSort.py`\n- **Pigeonhole Sort**: `PyPigeonholeSort.py`\n- **3-Way Merge Sort**: `Py3WayMergeSort.py`\n- **Cycle Sort**: `PyCycleSort.py`\n- **Stooge Sort**: `PyStoogeSort.py`\n- **Merge Sort**: `PyMergeSort.py`\n- **Comb Sort**: `PyCombSort.py`\n- **Tag Sort**: `PyTagSort.py`\n- **Cocktail Sort**: `PyCocktailSort.py`\n- **Radix Sort**: `PyRadixSort.py`\n- **Bubble Sort**: `PyBubbleSort.py`\n- **Selection Sort**: `PySelectionSort.py`\n- **Bingo Sort**: `PyBingoSort.py`\n- **QuickSort**: `PyQuickSort.py`\n- **Counting Sort**: `PyCountingSort.py`\n- **Bucket Sort**: `PyBucketSort.py`\n- **Gnome Sort**: `PyGnomeSort.py`\n- **HeapSort**: `PyHeapSort.py`\n- **Bitonic Sort**: `PyBitonicSort.py`\n- **Strand Sort**: `PyStrandSort.py`\n- **Shell Sort**: `PyShellSort.py`\n- **TimSort**: `PyTimSort.py`\n- **Pancake Sort**: `PyPancakeSort.py`\n\n## \ud83d\udd27 Installation\n\n```bash\npip install pyDSAlgo\n```\n\n## \ud83d\ude80 Usage\n\n### Data Structures:\n\n```python\nfrom pyDSAlgo.DS.Stack.PyStack import PyStack\n\n# Create a new stack\nstack = PyStack()\n\n# Push elements onto the stack\nstack.push(1)\nstack.push(2)\nstack.push(3)\n\n# Pop an element from the stack\nprint(stack.pop()) # Output: 3\n```\n\n### Algorithms:\n\n```python\nfrom pyDSAlgo.Algo.Sorting.PyBubbleSort import PyBubbleSort\n\n# Sample list to be sorted\nsample_list = [64, 34, 25, 12, 22, 11, 90]\n\n# Apply bubble sort\nsorted_list = PyBubbleSort(arr=sample_list).sort()\nprint(sorted_list) # Output: [11, 12, 22, 25, 34, 64, 90]\n```\n\n## \ud83e\uddea Testing\n\nAll implementations come with corresponding test files located in the `tests` directory, ensuring reliability and correctness.\n\n## \ud83e\udd1d Contributing\n\nWe welcome and value contributions from the open-source community. Your input, whether it's a bug fix, feature addition, or documentation improvement, helps enhance `pyDSAlgo`.\n\n## \ud83d\udc4f Credits\n\nCrafted with \u2764\ufe0f by [Sattyam Jain](https://www.linkedin.com/in/sattyamjain/).\n\n## \ud83d\udcdc License\n\nLicensed under the [MIT License](https://github.com/sattyamjjain/pyDSAlgo/blob/main/LICENSE).\n\n## \ud83d\udcde Contact\n\nFor feedback or queries, [contact us](https://www.linkedin.com/in/sattyamjain/). We're always eager to connect!\n",
"bugtrack_url": null,
"license": "",
"summary": "Python Package for Data structure and algorithms implementation with its proper explanation",
"version": "1.1.0",
"project_urls": {
"Bug Reports": "https://github.com/sattyamjjain/pyDSAlgo",
"Homepage": "https://github.com/sattyamjjain/pyDSAlgo",
"Source": "https://github.com/sattyamjjain/pyDSAlgo"
},
"split_keywords": [
"pydsa",
"pydsalgodsa",
"data structure",
"algo",
"algorithm",
"ds",
"python data structure"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b77c02eb1a65c9b1a930aa79bcb769f7781ec191bcc59ebdbb8a38e7ea061e95",
"md5": "b566be7edba247564fa0073b8aa61535",
"sha256": "f2fd3e1fda294f7df6a8a4e7bcded2dc4624551fd6789b6f595a5271a3594596"
},
"downloads": -1,
"filename": "PyDSAlgo-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b566be7edba247564fa0073b8aa61535",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 31895,
"upload_time": "2023-08-06T10:56:54",
"upload_time_iso_8601": "2023-08-06T10:56:54.576520Z",
"url": "https://files.pythonhosted.org/packages/b7/7c/02eb1a65c9b1a930aa79bcb769f7781ec191bcc59ebdbb8a38e7ea061e95/PyDSAlgo-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8bcdc2a4b0444524fee49a4433b18f0c6baef9608b765662372e64d0d0cfae45",
"md5": "76b261b51d96c070ed28a2a168abffef",
"sha256": "ef856e9dd4bf8071d5e840430b9271fa50a4b7d9e1ad949fab38c7fca5236aad"
},
"downloads": -1,
"filename": "PyDSAlgo-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "76b261b51d96c070ed28a2a168abffef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 15699,
"upload_time": "2023-08-06T10:56:56",
"upload_time_iso_8601": "2023-08-06T10:56:56.128114Z",
"url": "https://files.pythonhosted.org/packages/8b/cd/c2a4b0444524fee49a4433b18f0c6baef9608b765662372e64d0d0cfae45/PyDSAlgo-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-06 10:56:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sattyamjjain",
"github_project": "pyDSAlgo",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "pydsalgo"
}