You are on page 1of 5

Education and Research Department

Analysis of Algorithms
June 2004

Document No. Authorized By Ver. Revision Signature / Date


ER/CORP/CRS/SE1 Ravindra M. P. Ver.1.00
5/0019

COMPANY CONFIDENTIAL
Infosys Document Revision History

Document Revision History

Ver.
Date Author(s) Reviewer(s) Description
Revision
1.00 Jun 2004 Sivasubramanyam Y. Ramesh Babu S., 1. Provide more
R M Bharadwaj elaboration on the
objectives - Done
2. Include examples
for each design
methodology in the
LDD – Done

ER/CORP/CRS/SE15/0019 Version No. 1.00 ii


Infosys LDD for Analysis of Algorithms

1 Introduction
1.1 Efficiency Measures
1.1.1 Introduce the concept of performance of a solution

1.1.2 Understand the issue of Space – Time Tradeoffs

1.2 Basic Mathematical Principles


1.2.1 Introduce applicable mathematics

2 Code Tuning Techniques


2.1 Loops
2.1.1 Understand the different code tuning principles that can be
applied to iterational constructs

2.2 Logic
2.2.1 To manipulate logical expressions with performance as a
measure

2.3 Data Transformations


2.3.1 Understand the different code tuning principles that can be
applied to the data structures in a code so that the performance
of the code increases

2.4 Expressions
2.4.1 To simplify the expressions in a program with performance as a
measure

ER/CORP/CRS/SE15/0019 Version No.1.00 1


Infosys LDD for Analysis of Algorithms

3 Analyzing Algorithms
3.1 Apriori Analysis
3.1.1 Understand the strength of performing a machine independent
analysis of a solution

3.2 Framework for Analysis and Order notations


3.2.1 To perform an instruction count on the input size for analyzing
an algorithm

3.2.2 Introduce, with the aid of simple code snippets, the concept of
worst case and average case complexity measures

4 Analysis of well known Algorithms


4.1 Brute Force Algorithms
4.1.1 Analyze the complexities of algorithms like selection sort and
linear search which work on the brute force design principles

4.2 Greedy Algorithms


4.2.1 Analyze algorithms for problems like the Activity-Selection
problem, which are designed on the greedy technique

4.3 Divide and Conquer Algorithms


4.3.1 Understand, with examples, the working of the algorithm design
technique of Divide and Conquer and also to analyze the
complexities of algorithms like quick sort which work on this
design principle

4.4 Decrease and Conquer Algorithms


4.4.1 Analyze algorithms, like the insertion sort, which work on the
design principle of Decrease and Conquer

4.5 Dynamic Programming Algorithms


4.5.1 Understand the concept of Dynamic Programming and analyze
the complexities of algorithms, like computing the binomial
coefficient, which work on this design principle

ER/CORP/CRS/SE15/0019 Version No.1.00 2


Infosys LDD for Analysis of Algorithms

5 Intractable Problems
5.1 Intractability
5.1.1 Introduce, with examples, the problem of Intractability

5.1.2 Suggest techniques to solve intractable problems

5.2 P and NP
5.2.1 Discuss the relationship between class P and class NP and
introduce the NP-Complete and NP-hard classes

ER/CORP/CRS/SE15/0019 Version No.1.00 3

You might also like