Algorithms Notes for Professionals

Algorithms

Notes for Professionals

Algorithms

Notes for Professionals

GoalKicker.com

Free Programming Books

Disclaimer

This is an unocial free book created for educational purposes and is

not aliated with ocial 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

Cover Image: 

Contents

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

....................................................................................