Design and Analysis of Algorithms

Design and Analysis of Algorithms (Spring 2015) Prof. Erik Demaine , Prof. Srini Devadas and Prof. Nancy Lynch via MIT

Intermediate 0(0 Ratings) 0 Students enrolled
Created by Massachusetts Institute of Technology Staff Last updated Sat, 05-Mar-2022 English


Design and Analysis of Algorithms free videos and free material uploaded by Massachusetts Institute of Technology. This session contains about Design and Analysis of Algorithms Updated syllabus , Lecture notes , videos , MCQ , Privious Question papers and Toppers Training Provided Training of this course. If Material not uploaded check another subject

Syllabus / What will i learn?

Argue the correctness of algorithms using inductive proofs and loop invariants.

Analyze worst-case running times of algorithms using asymptotic analysis. Compare the asymptotic behaviors of functions obtained by elementary composition of polynomials, exponentials, and logarithmic functions. Describe the relative merits of worst-, average-, and best-case analysis.

Analyze average-case running times of algorithms whose running time is probabilistic. Employ indicator random variables and linearity of expectation to perform the analyses. Recite analyses of algorithms that employ this method of analysis.

Explain the basic properties of randomized algorithms and methods for analyzing them. Recite algorithms that employ randomization. Explain the difference between a randomized algorithm and an algorithm with probabilistic inputs.

Analyze algorithms using amortized analysis, when appropriate. Recite analyses of simple algorithms that employ this method of analysis. Describe different strategies for amortized analysis, including the accounting method and the potential method.

Describe the divide-and-conquer paradigm and explain when an algorithmic design situation calls for it. Recite algorithms that employ this paradigm. Synthesize divide-and-conquer algorithms. Derive and solve recurrences describing the performance of divide-and-conquer algorithms.

Describe the dynamic-programming paradigm and explain when an algorithmic design situation calls for it. Recite algorithms that employ this paradigm. Synthesize dynamic-programming algorithms, and analyze them.

Describe the greedy paradigm and explain when an algorithmic design situation calls for it. Recite algorithms that employ this paradigm. Synthesize greedy algorithms, and analyze them.

Explain the major algorithms for sorting. Recite the analyses of these algorithms and the design strategies that the algorithms embody. Synthesize algorithms that employ sorting as a subprocedure. Derive lower bounds on the running time of comparison-sorting algorithms, and explain how these bounds can be overcome.

Explain the major elementary data structures for implementing dynamic sets and the analyses of operations performed on them. Recite algorithms that employ data structures and how their performance depends on the choice of data structure. Synthesize new data structures by augmenting existing data structures. Synthesize algorithms that employ data structures as key components.

Explain the major graph algorithms and their analyses. Employ graphs to model engineering problems, when appropriate. Synthesize new graph algorithms and algorithms that employ graph computations as key components, and analyze them.

Demonstrate a familiarity with applied algorithmic settings - such as computational geometry, operations research, security and cryptography, parallel and distributed computing, operating systems, and computer architecture - by reciting several algorithms of importance to different fields.



Curriculum for this course
0 Lessons 00:00:00 Hours
+ View more
Description

This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.

You need online training / explanation for this course?
1:1 Online Training / Explanation Fee: 1 /- Month

1 to 1 Online Training contact instructor for demo :


+ View more

Other related courses
Updated Wed, 22-Apr-2020
26 Lessons
5 Free
Updated Wed, 22-Apr-2020
11 Lessons
0 Free
Updated Wed, 22-Apr-2020
29 Lessons
0 Free
Updated Sun, 20-Sep-2020
24 Lessons
0 ₹ 199
Updated Wed, 24-Feb-2021
35 Lessons
0 Free
Updated Wed, 22-Apr-2020
20 Lessons
0 Free
Updated Wed, 22-Apr-2020
38 Lessons
0 Free
Updated Thu, 30-Apr-2020
10 Lessons
0 Free
Updated Thu, 30-Apr-2020
43 Lessons
0 Free
About the instructor
  • 0 Reviews
  • 1 Students
  • 179 Courses
Student feedback
0
Average rating
  • 0%
  • 0%
  • 0%
  • 0%
  • 0%
Reviews

Material price :

Free

1:1 Online Training Fee: 1 /- Month
Contact instructor for demo :