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!
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.
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
Check Contribution Guide Before Contribution.
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 |
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 | |||
Gradient Descent | No | Yes | |
Linear Regression | No | Yes | |
Logistic Regression | No | Yes | |
Decision Tree | No | In progress #37 | |
K-Nearest Neighbours | No | In progress #38 |
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.)
Show your appreciation to those who have contributed to the project.
For open-source projects, Under MIT License.