Algorithm and Flow
Chart
Unit-I
Programming For Problem solving
Dr. Ashutosh Bhatt 1
Algorithms and flowcharts are two different tools that are helpful for
creating new programs, especially in computer programming.
An algorithm is a step-by-step analysis of the process.
A flowchart explains the steps of a program in a graphical way.
Dr. Ashutosh Bhatt 2
Definition of Algorithm
Writing a logical step-by-step method to solve the problem is called
the algorithm. In other words, an algorithm is a procedure for solving
problems. In order to solve a mathematical or computer problem, this
is the first step in the process.
An algorithm includes calculations, reasoning, and data processing.
Algorithms can be presented by natural languages, pseudocode, and
flowcharts, etc.
Dr. Ashutosh Bhatt 3
Dr. Ashutosh Bhatt 4
Definition of Flowchart
A flowchart is the graphical or pictorial representation of an
algorithm with the help of different symbols, shapes, and arrows to
demonstrate a process or a program. With algorithms, we can easily
understand a program.
The main purpose of using a flowchart is to analyze different
methods. Several standard symbols are applied in a flowchart:
Dr. Ashutosh Bhatt 5
The symbols below represent different parts of a flowchart. The
process in a flowchart can be expressed through boxes and arrows
with different sizes and colors. In a flowchart, we can easily
highlight certain elements and the relationships between each
part.
Name Symbol
Terminal Box - Start / End
Input / Output
Process / Instruction
Decision
Connector / Arrow
Dr. Ashutosh Bhatt 6
Difference between alogorithm and
flowchart
Algorithm Flowchart
It is a procedure for solving problems. It is a graphic representation of a process.
The process is shown in block-by-block information
The process is shown in step-by-step instruction.
diagram.
It is complex and difficult to understand. It is intuitive and easy to understand.
It is convenient to debug errors. It is hard to debug errors.
The solution is showcased in natural language. The solution is showcased in pictorial format.
It is somewhat easier to solve complex problem. It is hard to solve complex problem.
It costs more time to create an algorithm. It costs less time to create a flowchart.
Dr. Ashutosh Bhatt 7
Types of Algorithm:
We can generally divide algorithms into six fundamental types
based on their function.
Dr. Ashutosh Bhatt 8
• Recursive Algorithm
It refers to a way to solve problems by repeatedly breaking down the problem into
sub-problems of the same kind. The classic example of using a recursive algorithm
to solve problems is the Tower of Hanoi.
Dr. Ashutosh Bhatt 9
• Divide and Conquer Algorithm
Traditionally, the divide and conquer algorithm consists of two parts:
1. breaking down a problem into some smaller independent sub-problems of the same
type.
2. finding the final solution of the original issues after solving these more minor
problems separately.
The key points of the divide and conquer algorithm are:
• If you can find the repeated sub-problems and the loop substructure of the original
problem, you may quickly turn the original problem into a small, simple issue.
• Try to break down the whole solution into various steps (different steps need different
solutions) to make the process easier.
• Are sub-problems easy to solve? If not, the original problem may cost lots of time.
Dr. Ashutosh Bhatt 10
• Dynamic Programming Algorithm
Developed by Richard Bellman in the 1950s, the dynamic programming algorithm
is generally used for optimization problems.
In this type of algorithm, past results are collected for future use. Like the divide
and conquer algorithm, a dynamic programming algorithm simplifies a complex
problem by breaking it down into some simple sub-problems.
However, the most significant difference between them is that the latter requires
overlapping sub-problems, while the former doesn’t need to.
Dr. Ashutosh Bhatt 11
Greedy Algorithm
This is another way of solving optimization problems – greedy algorithm. It refers to
always finding the best solution in every step instead of considering the overall
optimality. That is to say, what he has done is just at a local optimum.
Due to the limitations of the greedy algorithm, it has to be noted that the key to
choosing a greedy algorithm is whether to consider any consequences in the
future.
Dr. Ashutosh Bhatt 12
Brute Force Algorithm
• The brute force algorithm is a simple and straightforward solution to
the problem, generally based on the description of the problem and
the definition of the concept involved. You can also use "just do it!" to
describe the strategy of brute force. In short, a brute force algorithm
is considered as one of the simplest algorithms, which iterates all
possibilities and ends up with a satisfactory solution.
Dr. Ashutosh Bhatt 13
Backtracking Algorithm
• Based on a depth-first recursive search, the backtracking algorithm focusing on
finding the solution to the problem during the enumeration-like searching
process. When it cannot satisfy the condition, it will return “backtracking” and
tries another path. It is suitable for solving large and complicated problems,
which gains the reputation of the “general solution method.” One of the most
famous backtracking algorithm example it the eight queens puzzle.
Dr. Ashutosh Bhatt 14
Example 1: Print 1 to 20:
Algorithm:
• Step 1: Initialize X as 0,
• Step 2: Increment X by 1,
• Step 3: Print X,
• Step 4: If X is less than 20 then go back to step 2.
Dr. Ashutosh Bhatt 15
Flowchart
Dr. Ashutosh Bhatt 16
Example 2: Convert Temperature from Fahrenheit (℉) to Celsius (℃)
Algorithm:
• Step 1: Read temperature in Fahrenheit,
• Step 2: Calculate temperature with formula C=5/9*(F-32),
• Step 3: Print C.
Dr. Ashutosh Bhatt 17
Flowchart
Dr. Ashutosh Bhatt 18
Example 3: Determine Whether A Student Passed the Exam or Not:
Algorithm:
• Step 1: Input grades of 4 courses M1, M2, M3 and M4,
• Step 2: Calculate the average grade with formula
"Grade=(M1+M2+M3+M4)/4"
• Step 3: If the average grade is less than 60, print "FAIL", else print
"PASS".
Dr. Ashutosh Bhatt 19
Flowchart
Dr. Ashutosh Bhatt 20
Three Most Commonly Used Types of Flowcharts
• Process Flowchart
• Data Flowchart
• Business Process Modeling Diagram
Dr. Ashutosh Bhatt 21