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