# Data structure - Algorithm, properties of an algorithm, types of algorithms

## Define an algorithm. What are the properties of an algorithm? What are the types of algorithms?

An algorithm is a series of steps or methodology to solve a problem.

Properties of an algorithm:-
- It is written in simple English.
- Each step of an algorithm is unique and should be self explanatory.
- An algorithm must have at least one input.
- An algorithm must have at least one output.
- An algorithm has finite number of steps.

Types:-
Types of algorithms are categorized based on the context they are spoken about. Some commonly used:
Brute force:- An extremity raw method that aims to finds variety of solutions and which ones the best.
Reduction:- Tries and converts the given problem to a simpler and a better known problem whose complexity is not dominated by the resulting reduced algorithm's. Linear programmings, Graphs, random are the other types of algorithms.

## Define an algorithm. What are the properties of an algorithm? What are the types of algorithms?

Algorithm: A step by step process to get the solution for a well defined problem.

Properties of an algorithm:
- Should be written in simple English
- Should be unambiguous, precise and lucid
- Should provide the correct solutions
- Should have an end point
- The output statements should follow input, process instructions
- The initial statements should be of input statements
- Should have finite number of steps
- Every statement should be definitive

Types of algorithms:
– Simple recursive algorithms. Ex: Searching an element in a list
– Backtracking algorithms Ex: Depth-first recursive search in a tree
– Divide and conquer algorithms. Ex: Quick sort and merge sort
– Dynamic programming algorithms. Ex: Generation of Fibonacci series
– Greedy algorithms Ex: Counting currency
– Branch and bound algorithms. Ex: Travelling salesman (visiting each city once and minimize the total distance travelled)
– Brute force algorithms. Ex: Finding the best path for a travelling salesman
– Randomized algorithms. Ex. Using a random number to choose a pivot in quick sort).
Data structure - What is an iterative algorithm?
Iterative algorithm - The process of attempting for solving a problem which finds successive approximations for solution, starting from an initial guess.......
Data structure - What is an recursive algorithm?
Recursive algorithm - Recursive algorithm is a method of simplification that divides the problem into sub-problems of the same nature......
Data structure - What is the Huffman algorithm?
Huffman algorithm - In Huffman Algorithm, a set of nodes assigned with values if fed to the algorithm........