Note and reference material to UD 513 Intro to Data structure and Algorithm
Course website: https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513
Table of content:
Concept of time and space complexity
Big O notation
Evaluate complexity of an algorithm
Concept of container
Python built-in type - list
Python class usage
Abstract Data Type - Stack, and implementation
Abstract Data Type - Queue, and implementation
Abstract Data Type - Linked List, and implementation
Concept of efficienct algorithm
Binary Search implementation
Concept of sorting
Concept of divide-and-conquer
Concept of recursion
Entry level sorting - Bubble sort
Advanced sorting - Merge sort, and tracing
Advanced sorting - Quick sort, and implementation
Recursion example - Fibonacci sequence
Concept of key-value pair
Python built-in type - dictionary
Nested dictionary, and implementation
Concept of Hashing
Concept of load factor and collision
Abstract Data Type - Hash, and implementation
Concept of tree, and terminology
Definition of tree traversal - pre-order, in-order, post-order
Tree traversal with recursion, and implementation
Concept of Binary Tree
Concept of Binary Search Tree, and implementation
Concept of Balanced Search Tree
Concept of Red-black Tree
Concept of grpah, and terminology
Definition of graph traversal - Topological, Depth First Search (DFS), Breadth First Search (BFS)
Abstract of graph presentation - Adjacency List, Adjacency Matrix, Edge List
Implementation of DFS as well as BFS
Implementation of graph presentation