Awesome Open Source
Awesome Open Source

## π A Collection of Algorithm And Data Structures in Cpp and Python π

#Note We have enabled an Interaction Limit till Monday(5th October). This is because we received a lot of duplicate issues and spam PRs, so we need some time to label them as invalid. We are now open to everyone again!

## Introduction

Data structures & Algorithms are an essential part of programming. It comes under the fundamentals of computer science. It gives us the advantage of writing better and efficient code in less time. It is a key topic when it comes to Software Engineering interview questions so as developers, we must have knowledge of Data Structure and Algorithms

π Star it π΄Fork it π€ Contribute to it!

## Data Structure

In computer science, a data structure is a data organization, management, and storage format that enables efficient access and modification. Data structure is a way or a format how your data is stored in memory for effecient usage and retrieval.

## Algorithms

An algorithm is a set of instructions that are used to accomplish a task, such as finding the largest number in a list, removing all the red cards from a deck of playing cards, sorting a collection of names, figuring out an average movie rating from just your friend's opinion

Algorithms are not limited to computers. They are like a set of step-by-step instructions or an even a recipe, containing things you need, steps to do, the order to do them, conditions to look for, and expected results.

• C++
• Python

## Support

Check Contribution Guide Before Contribution.

## Project Progress

### Data Structures

Data Structure C++ Python Status/Remarks
Linked List Yes Yes Being improved #23
Sets Yes Yes Implemented
Stack Yes In progress #13
Queue In progress #7 In progress #12

### Algorithms

Algorithm C++ Python Remarks
Searching
Binary Search No In progress #9
Jump Search In progress #39 In progress #10
Fibonacci Search No In progress #11
Sorting
Selection Sort In progress #29 In progress #30
Bubble Sort Yes Yes
Insertion Sort In progress #2 Yes
Merge Sort In progress #3 Yes
Quick Sort In progress #4 Yes
Heap Sort In progress #5 In progress #6
Radix Sort In progress #63 Yes
Recursion
Fibonacci Numbers No Yes
Fibonacci List No Yes
Factors No Yes
Recursion No Yes
Recursive Sum No Yes
Sieve
Sieve of Erosothenes No Yes
Dynamic Programming
Knapsack Problem No Yes
Longest Common Subsequence No Yes
Longest Increasing Subsequence No Yes
Merge Sort No Yes Duplicate
Fibonacci Number No Yes Duplicate
Naive Pattern Search In progress #18 In progress #17
Rabin-Karp Algorithm No
Backtracking
Suduko Solver In progress #21 No
The Knight's Tour In progress #33 In progress #32
Subset Sum In progress #36 In progress #35
Deep Learning
Activation Function No Yes
Feed Forward Normal Function No Yes
Layers No Yes
Loss Function No Yes
Optimizers No Yes
Machine Learning
Linear Regression No Yes
Logistic Regression No Yes
Decision Tree No In progress #37
K-Nearest Neighbours No In progress #38

## Contributing

Before submitting a bug, please do the following: Check Contribution Guide Before Contribution.

• Create separate issues for Python and C++.
• You can only work on issues that you have been assigned to.
• Use Flake8 locally for linting Python Code. `pip install flake8`. (We have linting checks so if your code fails it we will not merge the PR.)

## Authors and acknowledgment

Show your appreciation to those who have contributed to the project.

For open-source projects, Under MIT License.

## Maintainers

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (48,506)Β
hacktoberfest (4,322)Β
cpp (1,176)Β
algorithm (464)Β
data-structures (343)Β
hacktoberfest2020 (259)Β
machine-learning-algorithms (152)Β
computer-science (146)Β
algorithms-and-data-structures (38)Β