This repository consists of notes made while going through the course Python for Data Structures, Algorithms, and Interviews! in Udemy. All modules are separated as Jupiter Notebooks.
This course mainly has questions based on different data structures and very less questions based on pre-known algorithms. Kindly refer to my repo for list of named algorithms and their implementations.
All the best and keep coding!! :)
Algorithms have associated complexity:
- space -> memory occupied
- time -> time taken to complete task irrespective of input size
- They have set of input and produces output
#Algorithms classification
- series-> sequential fashion
- parallel -> break data set and work on each simultaneously
- exact -> provides exact value as output
- approximate -> output may or may not be exact e.g. face recognition
- deterministic -> steps know
- non-deterministic -> based on guesses
- searching -> search specific data in a larger data
- sorting -> sort a dataset
- computational -> take one data set and return another data set
- collection -> navigating through elements in a dataset
Big-O notation: classifies performance as input size grows. O represents order of operation
Notation | Description |
---|---|
O(1) | Constant |
O(log n) | Logarithmic |
O(n) |
Linear time |
O(nlogn) | Log-linear |
O(n^2) | Quadratic |