# Data Structures and Algorithms Design

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

The modern economy is run by algorithms. This a first-level course to introduce the students to the world of algorithm design, data structures, analysis, and programming. We'll start with the asymptotics notation which captures time and space of algorithms in the worst-case.

The basic data structures covered are -- array, list, queue, stack, matrix, tree, heap, set, and graph. The algorithmic paradigms covered are -- induction/recursion, divide-conquer, hashing, greedy-method, and dynamic-programming.

In the lectures, the theory will be backed up by numerous practical CS examples. The content is suitable for anyone who is mathematically inclined or computationally curious.

Intended audience: Computer Science &amp; Engineering, Mathematics, Electronics, Physics, &amp; similar disciplines.

Prerequisites: Very good analytical skills.

## Lectures

1. [Lecture 01: What is an Algorithm?](https://invisiblenetwork.ai/learn/nptel/106104697/00d7a97504ed) (YouTube)
2. [Lecture 02: Efficient Algorithms](https://invisiblenetwork.ai/learn/nptel/106104697/da4903e5ce4a) (YouTube)
3. [Lecture 03: Sorting, Searching and Arrays](https://invisiblenetwork.ai/learn/nptel/106104697/eb324b1b12e2) (YouTube)
4. [Lecture 04: Clever Algorithms](https://invisiblenetwork.ai/learn/nptel/106104697/9dcc2598ffc8) (YouTube)
5. [Lecture 05: Asymptotics, Fast Max-Sum Subarray](https://invisiblenetwork.ai/learn/nptel/106104697/da90ab5aa565) (YouTube)
6. [Lecture 06: Local Minima in 1D](https://invisiblenetwork.ai/learn/nptel/106104697/415f0157e1f2) (YouTube)
7. [Lecture 07: Local Minima in 2D](https://invisiblenetwork.ai/learn/nptel/106104697/5a118dd74584) (YouTube)
8. [Lecture 08: Efficient Local Minima in 2D](https://invisiblenetwork.ai/learn/nptel/106104697/c69dc05ee033) (YouTube)
9. [Lecture 09: Recurrence & Efficient Data Structures](https://invisiblenetwork.ai/learn/nptel/106104697/397e7ec451bc) (YouTube)
10. [Lecture 10: Range Minima in 1D array](https://invisiblenetwork.ai/learn/nptel/106104697/4c17ae87af1a) (YouTube)
11. [Lecture 11: Abstract Data Structures: Lists](https://invisiblenetwork.ai/learn/nptel/106104697/8b2cb1ad510a) (YouTube)
12. [Lecture 12: Linked Lists](https://invisiblenetwork.ai/learn/nptel/106104697/7c17ea0c3246) (YouTube)
13. [Lecture 13: Binary Search Inspired Tree](https://invisiblenetwork.ai/learn/nptel/106104697/3e28c6e7cd1d) (YouTube)
14. [Lecture 14: BST : Search, Insertion](https://invisiblenetwork.ai/learn/nptel/106104697/8014242b9626) (YouTube)
15. [Lecture 15: Balancing a BST, Stack Data Structure](https://invisiblenetwork.ai/learn/nptel/106104697/0e3a8a891187) (YouTube)
16. [Lecture 16: Stack: Expression Evaluation](https://invisiblenetwork.ai/learn/nptel/106104697/26b9f70879a3) (YouTube)
17. [Lecture 17: Queue DS](https://invisiblenetwork.ai/learn/nptel/106104697/644f4154dd61) (YouTube)
18. [Lecture 18: Red Black Tree DS](https://invisiblenetwork.ai/learn/nptel/106104697/a77d5d48516b) (YouTube)
19. [Lecture 19: RB Tree: Balance](https://invisiblenetwork.ai/learn/nptel/106104697/5d78ba433401) (YouTube)
20. [Lecture 20: Divide and Conquer Paradigm](https://invisiblenetwork.ai/learn/nptel/106104697/c70559ea6751) (YouTube)
21. [Lecture 21: Integer Multiplication & Inversions](https://invisiblenetwork.ai/learn/nptel/106104697/eeb7c4ee8493) (YouTube)
22. [Lecture 22: Graph Theory & Algorithms](https://invisiblenetwork.ai/learn/nptel/106104697/1ba56dd6bb44) (YouTube)
23. [Lecture 23: Graph DS & Breadth First Search](https://invisiblenetwork.ai/learn/nptel/106104697/9514b52a1bd1) (YouTube)
24. [Lecture 24: Complexity & Applications of BFS](https://invisiblenetwork.ai/learn/nptel/106104697/712604059a97) (YouTube)
25. [Lecture 25: Check Bipartiteness using BFS, Depth First Search](https://invisiblenetwork.ai/learn/nptel/106104697/2448404e94ce) (YouTube)
26. [Lecture 26: DFS tree and biconnected graph](https://invisiblenetwork.ai/learn/nptel/106104697/296f49279bff) (YouTube)
27. [Lecture 27: Articulation Points, Heap Data Structure](https://invisiblenetwork.ai/learn/nptel/106104697/ffc9868ced67) (YouTube)
28. [Lecture 28: Binary Heap](https://invisiblenetwork.ai/learn/nptel/106104697/63535d03c762) (YouTube)
29. [Lecture 29: Heapification](https://invisiblenetwork.ai/learn/nptel/106104697/83227eace2dc) (YouTube)
30. [Lecture 30: Augmented tree Data Structure](https://invisiblenetwork.ai/learn/nptel/106104697/af3691a40a08) (YouTube)
31. [Lecture 31: Multi Increment and Dynamic Range Min Problems](https://invisiblenetwork.ai/learn/nptel/106104697/718f9dfe1319) (YouTube)
32. [Lecture 32: Disjoint-Set Data Structure](https://invisiblenetwork.ai/learn/nptel/106104697/4e949d20a91a) (YouTube)
33. [Lecture 33: Fast Union and the i-th Statistic Problem](https://invisiblenetwork.ai/learn/nptel/106104697/86ca5523e60b) (YouTube)
34. [Lecture 34: i-th Statistic Problem: Approx Median](https://invisiblenetwork.ai/learn/nptel/106104697/2726d901c676) (YouTube)
35. [Lecture 35: Greedy Algorithms: Job Scheduling](https://invisiblenetwork.ai/learn/nptel/106104697/96ff7815bbad) (YouTube)
36. [Lecture 36: Minimum Spanning Tree](https://invisiblenetwork.ai/learn/nptel/106104697/f4e0e87a3e3a) (YouTube)
37. [Lecture 37: MST Cycle, Mobile Towers](https://invisiblenetwork.ai/learn/nptel/106104697/3e8d818a049c) (YouTube)
38. [Lecture 38: Shortest Path Algorithm](https://invisiblenetwork.ai/learn/nptel/106104697/e0b4a954d251) (YouTube)
39. [Lecture 39: Djikstra's Algorithm](https://invisiblenetwork.ai/learn/nptel/106104697/d1934f419dd0) (YouTube)
40. [Lecture 40: Counting Sort, Radix Sort](https://invisiblenetwork.ai/learn/nptel/106104697/f83127e4e0fc) (YouTube)
