Data structures are the methods that helps software engineers to store data in software. Different storing methods can produce different levels of efficiency when using and accessing the stored data. In order to maximize efficiency, it is ideal to use a fitting data structure to the problem at hand.
- Stack
- Linked List
- Arrays
- Binary Tree
- Graph
- Queue
An algorithm is simply a set of steps used to complete a specific task. Algorithm efficiency is the measure of the average execution time necessary for an algorithm to complete work on a set of data. In this context, algorithm efficiency has a direct relationship with computational resources. For this reason, it is ideal to maximize algorithm efficiency in order to reduce execution time.
- 2 String Algorithms
- SPOJ list Algorithm
- Searching Algorithms
- Sorting Algorithms
- Two Pointer Algoriths
- Dynamic Programming Algorithms
Big O notation is the mathematical notation that describes the efficiency of algorithms in worst case. With big O describing the algorithms complexity, the functions of the notation can be graphed and compared.
- O(1)
- O(log n)
- O(n)
- O(n log n)
- O(n^k)
- O(k^n)
- O(n!)
The further down the list we go, the quicker the functions grow as data set sizes increase. As a result, a smaller Big O notation is ideal to achieve.
If you have suggestions for how DS-ALGO could be improved, or want to report a bug, open an issue! We'd love all and any contributions.
For more, check out the Contributing Guide.