List of Algorithms: Sorts- Dijkstra's BFS DFS MST BST Heap Neural Network
- Introduction to Algorithms
- What they are
- Do I need to know math?
- Problem Solving
- What happens when you run Code?
- Data Structures
- Arrays 2. Strings
- Linked Lists 3. Stacks 4. Queues
- Hashes
- Trees
- Binary Trees
- Heaps
- Tries
- Graphs
- Directed vs. Undirected
- Big O Notation
- Recursion
- Sorting Algorithms
- Selection Sort
- Insertion Sort
- Bubble Sort
- Merge Sort
- Quick Sort
- Radix Sort
- Array Algorithms
- Randomized Selection
- Deterministic Selection
- Tree Algorithms
- BFS/DFS
- Priority Queues/Heaps?
- Binary Search Trees
- Graph Algorithms
- Minimum Spanning Tree
- Dijkstra's Algorithm
- String Algorithms
- Autocomplete with Tries
- P vs. NP
- Unknown Categories
- Data Compression
- BCrypt
- Interviewing
- What to Expect
- What they're (hopefully) looking for
- How to Practice
- Interview Questions History
- Language Overview
- Difference Between Languages
- Ruby
- JS
- C
- C++
- Java
- Python
- Go
- Dart
- PHP
- Language Chart
- Framework Resources
- Learning Resources
Ah, algorithms. A dirty word in web development. The mere mention of the word makes some programmers cower in fear. For those of you without a technical background, you might instantly think “MATH! Anything but math!”. If you’ve heard about Google, you’ve probably heard someone talk about the “Google Search Algorithm.” But the word shouldn’t scare you. It has been built up over the years as something to be feared, to be complicated, to be strictly mathematical. But that’s not what it means at all. Algorithms are, at their core, the steps taken to solve a problem. A course on algorithms would be better titled “Programming Problem Solving.”
Let’s jump in and learn an algorithm. If you’ve taken the Ruby course on codecademy, you’ve probably already seen this one:
def sum(x, y)
x + y
end
Above is your first algorithm in CS! It’s a method that does addition for you. It takes in two numbers, stores them in the variables x
and y
, and then returns the answer, the sum of x and y.
The purpose of this book is to teach algorithms with as little math as possible. Math will be added in for those that want to delve deeper in their understanding, but most algorithms can be explained without getting too much into the math.