Introduction to Algorithms
  • Introduction
  • Euclid's algorithm
  • Bubble Sort algorithm
  • Why study data structures & algorithms
  • Correctness of an algorithm
  • Chapter Quiz
Analysis of Algorithms
  • Note on this section
  • Introduction
  • How to calculate the time complexity
  • The RAM model of computation
  • Time complexity of Bubble sort algorithm
  • Pseudo code : Bubble sort algorithm
  • The Big O notation
  • Using Big O notation : Examples
  • Comparison of running times
  • Chapter Quiz
Basic Sorting and Search Algorithms
  • Selection Sort
  • Selection Sort : Pseudocode
  • Introduction to Insertion Sort
  • Applying Insertion Sort algorithm to cue balls
  • Insertion Sort: Pseudocode
  • O(n²) sorting algorithms - Comparison
  • In place sorting
  • Stable Vs Unstable Sorts
  • Searching elements in an un ordered array
  • Searching elements in an ORDERED array
  • Searching elements in an ORDERED array - contd.
  • Inserting and Deleting items in an ORDERED array
  • Sorting any type of object
  • Chapter Quiz
  • Assignment
Linked Lists
  • What is a Linked List?
  • Implementing a Linked List in Java
  • Inserting a new Node
  • Length of a Linked List
  • Deleting the head node
  • Searching for an Item
  • Using java generics to parameterize the LinkedList
  • Doubly Ended Lists
  • Inserting data in a sorted Linked List
  • Doubly Linked List
  • Insertion Sort revisited
  • Chapter Quiz
  • Assignment
Stacks and Queues
  • Stacks
  • Abstract Data Types
  • Implementing Stacks using Arrays
  • Queues
  • Queues using Arrays
  • Double Ended Queues
  • Double Ended Queues using Arrays
  • Chapter Quiz
  • Assignment
Recursion
  • Introduction
  • Understanding Recursion
  • Tail recursion
  • Tower of Hanoi
  • Tower of Hanoi - Implementation
  • Merge Sort
  • Merge Sort - Pseudocode
  • Merge Step - Pseudocode
  • Time Complexity of Merge Sort
  • Chapter Quiz
  • Assignment
Binary Search Trees
  • The Tree Data structure
  • Binary Trees
  • Binary Search Trees
  • Finding an item in a Binary Search Tree
  • Implementing the find method
  • Inserting an item in a Binary Search Tree
  • Deleting an Item : Case 1
  • Deleting an Item - Case 2
  • Deleting an Item - Case 3
  • Deleting an Item - Soft Delete
  • Finding smallest & largest values
  • Tree Traversal : In Order
  • Tree Traversal : Pre Order
  • Tree Traversal : Post Order
  • Unbalanced Trees Vs Balanced Trees
  • Height of a Binary Tree
  • Time Complexity of Operations on Binary Search Trees
  • Chapter Quiz
  • Assignment
More Sorting Algorithms
  • Introduction
  • QuickSort
  • QuickSort: The partition step
  • Shell Sort
  • Shell Sort: Example
  • Counting Sort
  • Radix Sort
  • Bucket Sort
  • Chapter Quiz