Course10610613156 lectures
Design and analysis of algorithms
Prof. Madhavan Mukund · Chennai Mathematical Institute
About
This course will cover basic concepts in the design and analysis of algorithms.
Asymptotic complexity, O() notation
Sorting and search
Algorithms on graphs: exploration, connectivity, shortest paths, directed acyclic graphs, spanning trees
Design techniques: divide and conquer, greedy, dynamic programming
Data structures: heaps, union of disjoint sets, search trees
Intractability
INTENDED AUDIENCE: Students in BE/BTech Computer Science, 2nd/3rd year.
PRE-REQUISITES: Exposure to introductory courses on programming and data structures.
INDUSTRY SUPPORT: This course should be of value to any company working in the area of software services and products.
Lectures
Week 1 : Introduction
- Course Outline
- Example: Air Travel
- Example: Xerox shop
- Example: Document similarity
- Introduction and motivation
- Input size, worst case, average case
- Quantifying efficiency: O( ), Omega( ), Theta( )
- Examples: Analysis of iterative and recursive algorithms
Week 2 : Searching and sorting
- Arrays and lists
- Searching in an array
- Selection Sort
- Insertion sort
- Merge sort
- Merge sort - analysis
- Quicksort
- Quicksort - analysis
- Sorting - Concluding remarks
Week 3 : Graphs
- Introduction to graphs
- Representing graphs
- Breadth first search (BFS)
- Depth first search (DFS)
- Applications of BFS and DFS
- Directed acylic graphs: topological sort
- Directed acylic graphs: longest paths
Week 4 : Weighted graphs
- Single source shortest paths: Dijkstra's algorithm
- Dijkstra's algorithm: analysis
- Negative edge weights: Bellman-Ford algorithm
- All pairs shortest paths
- Minimum Cost Spanning Trees
- Prim's Algorithm
- Kruskal's algorithm
Week 5: Data Structures: Union-Find and Heaps
- Union-Find using arrays
- Union-Find using pointers
- Priority queues
- Heaps
- Heaps: Updating values, sorting
- Counting inversions
- Closest pair of points
Week 6: Data Structures: Search Trees
- Binary Search Trees
- Balanced search trees
- Interval scheduling
- Scheduling with deadlines: minimizing lateness
- Huffman codes
Week 7: Dynamic Programming
- Introduction to dynamic programming
- Memoization
- Grid Paths
- Common subwords and subsequences
- Edit distance
- Matrix multiplication
Week 8: Linear Programming and Network Flows
Syllabus and materials
At NPTEL, as the course publishes them.
Credits and licence
- Institution
- Chennai Mathematical Institute
- Department
- Computer Science and Engineering
- Teacher
- Prof. Madhavan Mukund
- Level
- Undergraduate
- Language
- English
- Subjects
- Computer science, Engineering
- Source
- NPTEL
- Licence
- CC BY-NC-SA, as NPTEL states it. Non-commercial use only. NPTEL's terms
- Attribution
- NPTEL states: "Distributed under Creative Commons Attribution-ShareAlike / CC BY - NC - SA", beside a BY-NC-SA badge. Coordinated by IIT Madras.
- Who can watch
- NPTEL gives no rating. Invisible Network shows it to Tweens profiles and older, judged from what the source says about it. How courses are placed
More like this
Course
Matrix Methods in Data Analysis, Signal Processing, and Machine Learning
34 lectures · Video