Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ngunyigachie/dsa-python


https://github.com/ngunyigachie/dsa-python

Last synced: about 9 hours ago
JSON representation

Awesome Lists containing this project

README

        

# Data Structures and Algorithms in Python

This repository contains implementations of various data structures and algorithms in Python.

## Table of Contents

- [Data Structures](#data-structures)
- [Algorithms](#algorithms)

## Data Structures

1. **Linked List**: Implementation of singly linked list, doubly linked list, etc.
2. **Stack**: Implementation of stack data structure.
3. **Queue**: Implementation of queue data structure.
4. **Binary Tree**: Implementation of binary tree data structure.
5. **Heap**: Implementation of heap data structure.
6. **Hash Table**: Implementation of hash table (hash map) data structure.
7. **Graph**: Implementation of graph data structure.

## Algorithms

1. **Sorting Algorithms**:
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Recursion
- Shell Sort

2. **Algorithms for Searching Strings**:
- Linear Search: Simple approach where you check each character or substring sequentially.
- Knuth-Morris-Pratt (KMP) Algorithm: Efficient algorithm for substring searching that avoids unnecessary character comparisons.
- Boyer-Moore Algorithm: Another efficient algorithm for substring searching, focusing on skipping characters based on a preprocessing step.
- Rabin-Karp Algorithm: Uses hashing to find one or more patterns in a text string.

## Contributing

Contributions are welcome! If you'd like to contribute:
- Fork the repository
- Clone the forked repository to your local machine
- Create a new branch for your feature: `git checkout -b feature-name`
- Make your changes and commit them: `git commit -m 'Add some feature'`
- Push to the branch: `git push origin feature-name`
- Submit a pull request

Please make sure to update tests as appropriate.