# Why Algorithms Preferred Over Flowcharts?

Algorithms still rule the software world. The complex code can be broken down into smaller and understated blocks using algorithms. One might wonder flowcharts can also help in establishing a proper understanding of the code but the answer is no. Before answering the question of why algorithms are still preferred over flowcharts, let us see what an algorithm and flowchart mean in technical terms.

### Algorithms

An algorithm refers to a set of statements that forms the code for the program. They are written step by step in a simple, understandable language. English is the most commonly used language for algorithms.

*These are the 5 main properties of an algorithm: *

**Input –**Every algorithm consists of one or more inputs.**Output –**Every algorithm generates an output.**Effectiveness –**Every algorithm can be written using a pen and paper.**Finiteness –**Every function used returns some value.**Definiteness –**Every algorithm is unique.- The complexity of an algorithm refers to the amount of time and space an algorithm takes to get executed. This is one factor of an algorithm.

*The first step of an algorithm is written as Begin indicating that the algorithm starts and the last step is written as End indicating that the algorithm ends.*

### Flowchart

A flowchart refers to the pictorial or graphical representation of an algorithm. The algorithm is usually shown in form of shapes.

- Start or stop is represented in an elliptical shape.
- Input or Output is represented in the parallelogram.
- Processing statements are represented in rectangles.
- Decision-making statements are represented in the rhombus.
- Each shape is linked using the arrow(->)

Flowcharts are way easier to understand than algorithms as they are represented in pictorial forms. One can easily write the code by looking at the flowchart. Yet algorithms are still preferred and here are the reasons:

- One can write an algorithm even for the complex codes whereas it becomes difficult in a flowchart.
- Conditional and Looping statements can be written in algorithms but these statements cannot be represented in flowcharts.
- Debugging an algorithm is easier whereas a flowchart cannot be debugged as it is quite complex to do so.
- There are certain rules to be followed in the case of flowcharts but there are no particular rules for algorithms.

Consider a simple algorithm for adding two even numbers:

Step 1: Begin

Step 2: read a, b, c

Step 3: check if(a%2==0 && b%2==0)

Step 4: if true display a+b=c is even

Step 5: else the statement is false

Step 6: display it is not even

Step 7: End

The algorithm is written in simple and understandable language. One can easily write the code for this. This is not possible in the case of a flowchart as there are conditional statements like the **if-else statement** given in the algorithm. Many top organizations prefer flowcharts over algorithms for writing codes. It is the best way to get a proper understanding of the code in simpler language.