AlgorithmsAndDataStructure
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
Data Structure
In computer science, a data structure is a data organization, management, and storage format that enables efficient access and modification.
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.
Languages
- 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 | No | 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 | |||
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 |
Contributing
Before submitting a bug, please do the following: Check Contribution Guide Before Contribution.
Perform basic troubleshooting steps:
- Make sure you are on the latest version. If you are not on the most recent version, your problem may have been solved already! Upgrading is always the best first step.
- Try older versions. If you are already on the latest release, try rolling back a few minor versions (e.g. if on 1.7, try 1.5 or 1.6) and see if the problem goes away. This will help the devs narrow down when the problem first arose in the commit log.
- Try switching up dependency versions. If the software in question has dependencies (other libraries, etc) try upgrading/downgrading those as well.
Authors and acknowledgment
Show your appreciation to those who have contributed to the project.
License
For open-source projects, Under MIT License.