Algorithms
Notes for Professionals
Algorithms
Notes for Professionals
GoalKicker.com
Free Programming Books
Disclaimer
This is an unocial free book created for educational purposes and is
not aliated with ocial Algorithms group(s) or company(s).
All trademarks and registered trademarks are
the property of their respective owners
200+ pages
of professional hints and tricks
Contents
About
1
...................................................................................................................................................................................
Chapter 1: Getting started with algorithms
2
....................................................................................................
Section 1.1: A sample algorithmic problem
2
.................................................................................................................
Section 1.2: Getting Started with Simple Fizz Buzz Algorithm in Swift
2
......................................................................
Chapter 2: Algorithm Complexity
5
.........................................................................................................................
Section 2.1: Big-Theta notation
5
....................................................................................................................................
Section 2.2: Comparison of the asymptotic notations
6
..............................................................................................
Section 2.3: Big-Omega Notation
6
................................................................................................................................
Chapter 3: Big-O Notation
8
........................................................................................................................................
Section 3.1: A Simple Loop
9
............................................................................................................................................
Section 3.2: A Nested Loop
9
...........................................................................................................................................
Section 3.3: O(log n) types of Algorithms
10
.................................................................................................................
Section 3.4: An O(log n) example
12
..............................................................................................................................
Chapter 4: Trees
14
.........................................................................................................................................................
Section 4.1: Typical anary tree representation
14
.........................................................................................................
Section 4.2: Introduction
14
.............................................................................................................................................
Section 4.3: To check if two Binary trees are same or not
15
.....................................................................................
Chapter 5: Binary Search Trees
18
..........................................................................................................................
Section 5.1: Binary Search Tree - Insertion (Python)
18
...............................................................................................
Section 5.2: Binary Search Tree - Deletion(C++)
20
.....................................................................................................
Section 5.3: Lowest common ancestor in a BST
21
......................................................................................................
Section 5.4: Binary Search Tree - Python
22
.................................................................................................................
Chapter 6: Check if a tree is BST or not
24
..........................................................................................................
Section 6.1: Algorithm to check if a given binary tree is BST
24
..................................................................................
Section 6.2: If a given input tree follows Binary search tree property or not
25
.......................................................
Chapter 7: Binary Tree traversals
26
.....................................................................................................................
Section 7.1: Level Order traversal - Implementation
26
...............................................................................................
Section 7.2: Pre-order, Inorder and Post Order traversal of a Binary Tree
27
..........................................................
Chapter 8: Lowest common ancestor of a Binary Tree
29
.........................................................................
Section 8.1: Finding lowest common ancestor
29
.........................................................................................................
Chapter 9: Graph
30
.........................................................................................................................................................
Section 9.1: Storing Graphs (Adjacency Matrix)
30
.......................................................................................................
Section 9.2: Introduction To Graph Theory
33
..............................................................................................................
Section 9.3: Storing Graphs (Adjacency List)
37
...........................................................................................................
Section 9.4: Topological Sort
39
.....................................................................................................................................
Section 9.5: Detecting a cycle in a directed graph using Depth First Traversal
40
..................................................
Section 9.6: Thorup's algorithm
41
.................................................................................................................................
Chapter 10: Graph Traversals
43
..............................................................................................................................
Section 10.1: Depth First Search traversal function
43
..................................................................................................
Chapter 11: Dijkstra’s Algorithm
44
..........................................................................................................................
Section 11.1: Dijkstra's Shortest Path Algorithm
44
........................................................................................................
Chapter 12: A* Pathfinding
49
.....................................................................................................................................
Section 12.1: Introduction to A*
49
...................................................................................................................................
Section 12.2: A* Pathfinding through a maze with no obstacles
49
.............................................................................
Section 12.3: Solving 8-puzzle problem using A* algorithm
56
....................................................................................