## Why Algorithm is important in programming Do you want to learn why Algorithm is important in programming and what is the necessary to learn Algorithm, while you think to learn programming languages, then this article is perfect for you.

Hi, I am Satyajit, a computer graduate (MCA, BSc-IT, Diploma in Hardware/Repair), who started carrier as a dedicated writer with a sole intension to make the world better & innovative by sharing valuable information to people on computer and technology who desire to obtain more knowledge.

Algorithm is alone a big subject and it is use in various different areas of research and study.

In this article, I will discuss about definitions of Algorithm, basics of algorithm, types, characteristics of algorithm etc.

Ok, let’s get started.

## What is Algorithm ?

The word ‘Algorithm’ is derived from the name of Abu Abdullah Muhammad Ibn Musa al-Khwarizmi,  who lived during the ninth century, a Persian mathematician, astronomer, geographer and scholar.

An algorithm is a set of well defined instructions or set of rules used to accomplish a particular task or to solve any problem in a systematic way.

An algorithm is a well-defined computational procedure that takes a value or a set of values as input, constitute a process and produces an output.

## Why Algorithm is important in programming ?

Algorithms are not only use in programming but also use in various areas of study, it is use to perform logical and mathematical operations such as sorting, searching, merging, logic programming, matrix processing, parsing, predicting statistics, solving basic geometric problems, displaying graphics and performing common mathematical calculations.

Algorithm is playing a vital role in programming. Algorithms are defined as a finite set of rules that defines the sequence of operations to solve a specific set of goals.

So, it is very important to learn the fundamentals and clear the concepts of algorithms, who want to become a good programmer.

Good programmer, maintain the following basic sequence:

• Analyzing the problem
• Design the algorithm for that problem
• Prepare a flowchart for that algorithm
• Write a program according to flowchart
• Test the program by giving different inputs
• Implement the program
• Get the output as desired

## What is Flowchart ?

Flowchart is the pictorial representation of algorithm and the summary of the decisions and flows that make up a procedure or process from beginning to the end.

A flowchart shows how the entire system functions and where error. There are some standard symbols to draw the flow charts, these are 1) Start/ End, 2) Decision Making, 3) Processing, 4) Document/ Hard Copy, 5) Page connectors, 6) Storage Disk, 7) Flow Line, 8) Input/ Output.

## What are the characteristics of an Algorithm ?

To design an algorithm as a solution to a given problem, we need characteristics of an algorithm. Most important characteristics of an algorithm are:

Finiteness

An algorithm must terminate after a finite number of steps, it should be terminates on allowed inputs.

Definiteness

Each instruction/ step of an algorithm should be clear, precise and unambiguous.

Inputs

Input should be well defined. An algorithm has zero or more but only finite, number of inputs.

Outputs

An algorithm has one or more outputs. The outputs have specific relation to the inputs and it should be clearly defined what output will be produce.

Effectiveness

Each of the operations/ instructions to be performed in an algorithm must be very basic so that it can be carried out in principle, by a person using only pencil and paper.

Generality

Algorithms need to have general instructions which can be applied in any case.

## What are the types of Algorithm ?

There are a number of different types of Algorithm available for solving the problems.  Different types of algorithms are:

Simple recursive

A simple recursive algorithm solves the basic problems using recursion.

Backtracking

Backtracking algorithms are based on a depth-first recursive search. Backtracking can be applied only for problems which have the concept of a partial candidate solution and a quick test of whether it can possibly be completed to a valid solution.

Divide and conquer

Divide and conquer algorithms can be use when there are two or more recursive calls.

Dynamic programming

Dynamic programming algorithm use to stores the previous results and uses them to find new ones.

Greedy algorithms

Greedy algorithms is the most straightforward and can be applied to a wide variety of problems. The greedy method suggest that one can device an algorithm that works in stages, considering one input at a time.

Branch and bound algorithms

Branch and bound algorithms use generally for optimization problems. This method is use to construct an upper and lower bound for a given problem.

Brute force algorithms

A brute force algorithm simply tries all possibilities until a satisfactory solution is found.

Randomized algorithms

A randomized algorithm uses a random number at least once during the computation to make a decision.

## How to design an Algorithms ?

Designing an algorithm is the process of creating an algorithm that meets all the output of analysis phase. Algorithm design is a specific method to create a mathematical process in solving problems. In order to design an algorithm, we need to consider the following points:

• Optimize the algorithm
• Choose a data structure
• Recognize the problems
• Resolve the problems