# Algorithms
Quote
An algorithm must be seen to be believed © Donald Knuth
# Buzzwords
Complexity Analysis Linked List Queue Priority Queue Stack Heap Binary Search Tree Trie AVL Tree Red-Black Tree B-Tree Hash Table Bloom filter Set Quicksort Merge Sort Depth First Search Bredth First Search Dijkstra's Algorithm Greedy Algorithms Dynamic Programming Two Pointers Backtracking# Data Structures
We should know how to treat the most precious resource we have - data
The problem is, data can be used in different ways. For example, consider an array of numbers:
- You might need to access it sequentially, or you should be able to compare pairs of numbers
- You might have limited memory or limited computing power, or both
- What happens if you need to add items from your array?
- What happens if you need to remove items from your array?
Data Structures will teach you how to satisfy your requirements
# Algorithms
Ok, now we can access the data efficiently. Time to process it. Algorithms teach us how to process data to get the desired results
# Complexity Analysis
Every data structure and every algorithm have their strengths and weaknesses
You can utilize Big-O notation - mathematical way of describing performance of data structures and algorithms
# Whiteboard Coding
Very common practice on coding interviews these days. The task is to solve a programming problem using a whiteboard instead of an IDE