Beruflich Dokumente
Kultur Dokumente
INTRODUCTION TO
ALGORITHM ANALYSIS
MS. ANDLEEB YOUSAF KHAN
FALL 2019
ABOUT THE COURSE
• In this course you will learn several fundamental and advanced principles of algorithm
design: divide-and-conquer methods, graph algorithms, practical data structures (heaps,
hash tables, search trees), randomized algorithms, greedy algorithms and applications;
dynamic programming and applications; Complexity classes and what it means for the
algorithm designer and more.
COURSE SYLLABUS (SUBJECT TO CHANGE)
• Cormen/Leiserson/Rivest/Stein, Introduction to
Algorithms, 2009 (3rd edition).
• Algorithms in C++, Robert Sedgewick
• Mehlhorn/Sanders, Data Structures and Algorithms:The
Basic Toolbox, 2008.
WHAT IS AN ALGORITHM?
• An algorithm is a well-defined set of rules --- a recipe, in effect --- for solving a
computational problem.
• For example:
Given a list of numbers, rearrange them into sorted order;
Given a road network, an origin, and a destination, compute the shortest path from
the origin to the destination;
Given a set of tasks with deadlines, determine whether or not it is possible to
complete all the tasks by their deadlines.
WHY STUDY ALGORITHMS?