Design and Analysis of Algorithms (CS3052)
Design and Analysis of Algorithms (CS3052)
Algorithms (CS3052)
Prof. G. G. Shingan
Computer science and Engineering
Department
RIT, Rajaramnagar.
Lecture No.1
Outline
• Course Outcomes
• Syllabus
• Books
• Evaluation Scheme
• Introduction to Design and Analysis of Algorithms
Course Description
• The Design and Analysis of Algorithm is concerned
with solving problems by designing a solution in terms
of algorithm and also analyzing performance to check
the efficiency of an algorithm. This course provides an
overview of different algorithm strategies like DAC,
Greedy Method, Dynamic Programming and Branch
Bound. In spite of this, it also covers the
nondeterministic algorithm and limitations of
computer algorithms and how it can be solved using
randomized algorithms and proving NP-Completeness.
Course Outcomes
After successful completion of the course, students will
be able to:
• Study basic algorithmic strategies
• Analyze the performance or complexity of algorithms
• Identify appropriate algorithm design techniques for
solving problems
• Design an algorithm to solve problem in systematic
way
• Explain non-deterministic and randomized algorithms
Syllabus
Syllabus
Evaluation Scheme
• ESE– 50%
• UT-1 – 15%
• UT-2 – 15%
• ISE– 20%
▫ Moodle Forum 2%
▫ Swayam Online Course– 3%
▫ Animation– 15%
9
What is Algorithm?
• Definition
An algorithm is a finite set of instructions that accomplishes a
particular task.
• Criteria
▫ input
▫ output
▫ definiteness: clear and unambiguous
▫ finiteness: terminate after a finite number of steps
▫ effectiveness: instruction is basic enough to be carried out
What is Algorithm?
algorithm
Algorithmic solution
Which Algorithm should use?
Algorithm 1 0(n2) Selection Sort
0(n2)
Insertion Sort
Algorithm 2
Problem 0(nlogn) Merge Sort
p Sorting
Radix Sort
Algorithm 3
0(nlogn) Quick Sort
.
.
. Heap Sort
0(nlogn)
.
• Analysis:
• predict the cost of an algorithm in terms of resources and
performance
• Design:
• design algorithms which minimize the cost
Design Paradigm
• Brute force
• Divide and conquer
• Greedy Approach
• Dynamic Programming
• Backtracking
• Nondeterministic and Randomized algorithms
• Reduction– NP Class Problems