You are on page 1of 4

Fundamentals of Algorithmic

Problem Solving

CSC 3102 2.1 B.B. Karki, LSU


Algorithmic Design and Analysis Process
Understand the problem
 One should go
through a sequence
of interrelated Decide on:
actions (steps) in computational devices;
designing and exact vs approx. solving;
analyzing an data structure;
algorithm
algorithm design technique
 A creative
activity

 A good algorithm is Design an algorithm


usually a result of
repeated efforts and
rework Prove correctness

Analyze the algorithm

Code the algorithm


CSC 3102 2.2 B.B. Karki, LSU
Sequence of Steps

 Understand completely the problem: Do some examples by hand, think about


special cases, ask questions if needed. May be you can use a known
algorithm for solving it.

 Ascertaining the capabilities of a computational device: Sequential (serial)


algorithms versus parallel algorithms.

 Choosing between exact and approximate problem solving: Exactly


unsolvable problem or slow exact algorithm.

 Deciding on appropriate data structures: Structuring or restructuring data


specifying a problem’s instance is important.

CSC 3102 2.3 B.B. Karki, LSU


Sequence of Steps (Contd.)

 Algorithm design techniques: Select a general approach to solving problem


algorithmically.

 Methods of specifying an algorithm: Pseudocode is a mixture of a natural


language and a programming language-like constructs.

 Providing an algorithm’s correctness: Use mathematic induction considering


selected inputs.

 Analyzing an algorithm: Time and space efficiencies; and simplicity and


generality

 Coding an algorithm: Implement it as computer program with test and


debugging for its validation.

CSC 3102 2.4 B.B. Karki, LSU