DataStructures and Algorithmics
Upcoming Batch
Upcoming Batch
Syllabus
Syllabus
Programming Building Blocks
Programming Building Blocks
- Expressions
- Selection
- Iteration
- Sequence
- Recursion
- Stack
- Array Implementation
- List Implementation
- Applications
- Queue
- Array Implementation
- List Implementation
- Applications
- Lists
- Singly Linked List
- Doubly Linked List
- Circular List
- Applications
- Strings
- Tables
- Trees
- Tree Terminology
- Binary Tree
- Threaded Tree
- AVL
- Applications
- Heap
- Graphs
- Graph Terminology
- Matrix Implementation
- List Implementation
- Graph Traversal
- Breadth First Traversal
- Depth First Traversal
- Applications
Searching
Searching
- Sequential
- Binary
- Hash
Sorting
Sorting
- Insertion Sort
- Selection Sort
- Heap Sort
- Merge Sort
- Bubble Sort
- Quick Sort
- Sorting with Permutation Array
- Comparison of various techniques
Persistence
Persistence
External Memory Algorithms
File Based Storage
- Hashed Files
- Indexed Files
- B Trees
Algorithm Analysis
Algorithm Analysis
- Analysing Algorithm
- Designing Algorithm
- Computational Tractractability
- Asymptotic Growth Order
- Running Times
- Linear Time
- nlog(n) Time
- Logarithmic Time
- Quadratic Time
- Cubic Time
- Algorithmic Correctness
Algorithm Methods
Algorithm Methods
- Searches and Traversals
- Exhaustive Search
- Divide and Conquer
- Greedy Algoritm
- Dynamic Programming
- Nondestructive Algorithms
- Online Algorithms
Computational Complexity
Computational Complexity
- After the fact Improvements
- Order of Magnitude Improvements
- BigO Notation
- Average Case Complexity
- Upper and Lower Bounds
- Reasonable vs Unreasonable Time
- NP-Completness
- Provably Intractable Problems
- Undecidability
- Fundamental Levels of Algorithmic Behaviour
- Types of Problems
- Tractable Problems
- Intractable Problems
- Undecidable Problems
- Highly Undecidable Problems
Abstract Models of Computation
Abstract Models of Computation
- Finite State Machines
- Push Down Automata
- Turing Machine
- Lambda Calculus
Behavioural Complexity
Behavioural Complexity
- Parallel Algorithms
- Concurrent Algorithms
- Probabilistic Algorithms
- Quantum Algorithms
- Molecular Algorithms
- Reactive Systems
Cognitive Complexity
Cognitive Complexity
- Introduction to AI
- Introduction to Knowledge Based Systems
Application
Application
Implementing Database Engine.