Fundamentals of Algorithmic Problem Solving: B.B. Karki, LSU 2.1 CSC 3102
The document outlines the algorithmic design and analysis process. It involves 6 key steps: 1) understanding the problem fully, 2) deciding on the computational approach, data structures, and design technique, 3) designing the algorithm through repeated efforts, 4) proving the algorithm's correctness, 5) analyzing the algorithm's time and space efficiency, and 6) coding and testing the algorithm. The process is an iterative one that moves from understanding and designing the algorithm to implementing and analyzing it.
Fundamentals of Algorithmic Problem Solving: B.B. Karki, LSU 2.1 CSC 3102
The document outlines the algorithmic design and analysis process. It involves 6 key steps: 1) understanding the problem fully, 2) deciding on the computational approach, data structures, and design technique, 3) designing the algorithm through repeated efforts, 4) proving the algorithm's correctness, 5) analyzing the algorithm's time and space efficiency, and 6) coding and testing the algorithm. The process is an iterative one that moves from understanding and designing the algorithm to implementing and analyzing it.
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