# Introduction to Algorithms and Analysis

- Institution: IIT Kharagpur
- Department: Computer Science and Engineering
- Teacher: Prof. Sourav Mukhopadhyay
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106105164)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106105164)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.

INTENDED AUDIENCE : UG,PG, B. Tech., M. Tech., M. Sc.

INDUSTRY SUPPORT : IT companies

## Lectures

1. [Lecture 1: Insertion sort](https://invisiblenetwork.ai/learn/nptel/106105164/a2487fcf2137) (YouTube)
2. [Lecture 2: Analysis of Insertion Sort](https://invisiblenetwork.ai/learn/nptel/106105164/22ebd4768893) (YouTube)
3. [Lecture 3: Asymptotic Notation](https://invisiblenetwork.ai/learn/nptel/106105164/aaabfe90719c) (YouTube)
4. [Lecture 4: Recurrence for Merge Sort](https://invisiblenetwork.ai/learn/nptel/106105164/eec1f9b031e0) (YouTube)
5. [Lecture 5: Substitution Method](https://invisiblenetwork.ai/learn/nptel/106105164/28d19a9ef6a2) (YouTube)
6. [Lecture 6: The Master Method](https://invisiblenetwork.ai/learn/nptel/106105164/58656adcdd1a) (YouTube)
7. [Lecture 7: Divide-and-Conquer](https://invisiblenetwork.ai/learn/nptel/106105164/1bc76338b291) (YouTube)
8. [Lecture 8: Divide-and-Conquer (Contd..)](https://invisiblenetwork.ai/learn/nptel/106105164/63ad4938d3f4) (YouTube)
9. [Lecture 9: Straseen's Algorithms](https://invisiblenetwork.ai/learn/nptel/106105164/8cf6d642d8cf) (YouTube)
10. [Lecture 10: QuickSort](https://invisiblenetwork.ai/learn/nptel/106105164/d8d01736ce64) (YouTube)
11. [Lecture 11: Analysis of Quicksort.](https://invisiblenetwork.ai/learn/nptel/106105164/9007ca87b6ba) (YouTube)
12. [Lecture 12: Randomized Quicksort](https://invisiblenetwork.ai/learn/nptel/106105164/e153e28585a3) (YouTube)
13. [Lecture 13: Heap](https://invisiblenetwork.ai/learn/nptel/106105164/be57c1363ce9) (YouTube)
14. [Lecture 14: Heap Sort](https://invisiblenetwork.ai/learn/nptel/106105164/608986ec63de) (YouTube)
15. [Lecture 15: Decision Tree](https://invisiblenetwork.ai/learn/nptel/106105164/30223eba75d0) (YouTube)
16. [Lecture 16: Linear time Sorting](https://invisiblenetwork.ai/learn/nptel/106105164/3d2e1d7a16c5) (YouTube)
17. [Lecture 17: Radix Sort & Bucket Sort](https://invisiblenetwork.ai/learn/nptel/106105164/aa6b07853b66) (YouTube)
18. [Lecture 18: Order Statistics](https://invisiblenetwork.ai/learn/nptel/106105164/2dcca705ea1a) (YouTube)
19. [Lecture 19: Order Statistics (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105164/20906cde35d7) (YouTube)
20. [Lecture 20: Worst case linear time order statistics](https://invisiblenetwork.ai/learn/nptel/106105164/f34d5e870582) (YouTube)
21. [Lecture 21 : Hash Function](https://invisiblenetwork.ai/learn/nptel/106105164/8b7a34a16142) (YouTube)
22. [Lecture 22 : Open Addressing](https://invisiblenetwork.ai/learn/nptel/106105164/528718ca12a5) (YouTube)
23. [Lecture 23 : Universal Hashing](https://invisiblenetwork.ai/learn/nptel/106105164/3a943f3e61e4) (YouTube)
24. [Lecture 24 : Perfect Hashing](https://invisiblenetwork.ai/learn/nptel/106105164/62bcc1dc3e43) (YouTube)
25. [Lecture 25 : Binary Search Tree (BST) Sort](https://invisiblenetwork.ai/learn/nptel/106105164/57071a6e9878) (YouTube)
26. [Lecture 26: Randomly build BST](https://invisiblenetwork.ai/learn/nptel/106105164/1532a1f964c0) (YouTube)
27. [Lecture 27: Red Black Tree](https://invisiblenetwork.ai/learn/nptel/106105164/414006cdbc9e) (YouTube)
28. [Lecture 28: Red Black Tree (Cont...)](https://invisiblenetwork.ai/learn/nptel/106105164/3a168c4be8a0) (YouTube)
29. [Lecture 29: Augmentation of data structure](https://invisiblenetwork.ai/learn/nptel/106105164/b4de95493760) (YouTube)
30. [Lecture 30: Interval trees](https://invisiblenetwork.ai/learn/nptel/106105164/d6c7355f4bcd) (YouTube)
31. [Lecture 31 : Fixed Universe Successor](https://invisiblenetwork.ai/learn/nptel/106105164/051f547d4904) (YouTube)
32. [Lecture 32 : Van Emde Boas data structure](https://invisiblenetwork.ai/learn/nptel/106105164/9c6ac68f4240) (YouTube)
33. [Lecture 33: Amortized Analysis](https://invisiblenetwork.ai/learn/nptel/106105164/4cd6d64dee52) (YouTube)
34. [Lecture 34: Computational Geometry](https://invisiblenetwork.ai/learn/nptel/106105164/5feeb53d5db8) (YouTube)
35. [Lecture 35: Computational Geometry (cont....)](https://invisiblenetwork.ai/learn/nptel/106105164/0122efa524aa) (YouTube)
36. [Lecture 36: Dynamic Programming](https://invisiblenetwork.ai/learn/nptel/106105164/d2080e342d8a) (YouTube)
37. [Lecture 37: Longest common subsequence](https://invisiblenetwork.ai/learn/nptel/106105164/a55286f85ac1) (YouTube)
38. [Lecture 38: Graphs](https://invisiblenetwork.ai/learn/nptel/106105164/cbdc1f144138) (YouTube)
39. [Lecture 39: Prim's Algorithms](https://invisiblenetwork.ai/learn/nptel/106105164/dbe29841824c) (YouTube)
40. [Lecture 40: Graph Search](https://invisiblenetwork.ai/learn/nptel/106105164/3791ed426c74) (YouTube)
41. [Lecture 41: BFS & DFS](https://invisiblenetwork.ai/learn/nptel/106105164/b32497679f25) (YouTube)
42. [Lecture 42: Shortest path problem](https://invisiblenetwork.ai/learn/nptel/106105164/c81c38f80144) (YouTube)
43. [Lecture 43: Dijktra's](https://invisiblenetwork.ai/learn/nptel/106105164/89817fbd7191) (YouTube)
44. [Lecture 44:Example of Dijktra](https://invisiblenetwork.ai/learn/nptel/106105164/ab21985088d1) (YouTube)
45. [Lecture 45: Bellman Ford](https://invisiblenetwork.ai/learn/nptel/106105164/d3d710ade613) (YouTube)
46. [Lecture 46: Correctness of Bellman Ford](https://invisiblenetwork.ai/learn/nptel/106105164/d91c22daf167) (YouTube)
47. [Lecture 47: Application of Bellman Ford](https://invisiblenetwork.ai/learn/nptel/106105164/250a02edaac3) (YouTube)
48. [Lecture 48: All pairs shortest path](https://invisiblenetwork.ai/learn/nptel/106105164/3aa5fce787e4) (YouTube)
49. [Lecture 49: Floyd-Warshall](https://invisiblenetwork.ai/learn/nptel/106105164/768dffd464be) (YouTube)
50. [Lecture 50: Johnson Algorithm](https://invisiblenetwork.ai/learn/nptel/106105164/5c1fc2db3c89) (YouTube)
51. [Lecture 51 : Disjoint set data structure](https://invisiblenetwork.ai/learn/nptel/106105164/dcfd84bee0fc) (YouTube)
52. [Lecture 52 : Union-Find](https://invisiblenetwork.ai/learn/nptel/106105164/bd3660a36aaf) (YouTube)
53. [Lecture 53 : Augmented disjoint set data structure](https://invisiblenetwork.ai/learn/nptel/106105164/73fe54f33564) (YouTube)
54. [Lecture 54 : Network flow](https://invisiblenetwork.ai/learn/nptel/106105164/2352f106991d) (YouTube)
55. [Lecture 55 : Network Flow (cont...)](https://invisiblenetwork.ai/learn/nptel/106105164/656cf2243983) (YouTube)
56. [Lecture 56 : Network Flow (cont...)](https://invisiblenetwork.ai/learn/nptel/106105164/6a499752c965) (YouTube)
57. [Lecture 57 : More on Dynamic Programming](https://invisiblenetwork.ai/learn/nptel/106105164/c1ebb1033455) (YouTube)
58. [Lecture 58 : More on Dynamic Programming (cont...)](https://invisiblenetwork.ai/learn/nptel/106105164/0b7fd44c0f8d) (YouTube)
59. [Lecture 59 : Computational Complexity](https://invisiblenetwork.ai/learn/nptel/106105164/41e700de811e) (YouTube)
60. [Lecture 60 : Computational Complexity (cont...)](https://invisiblenetwork.ai/learn/nptel/106105164/05a37b6a6bac) (YouTube)
