An Algorithm is a set of well-defined instructions designed to perform a specific set
of tasks. Algorithms are used in Computer science to perform calculations,
automatic reasoning, data processing, computations, and problem-solving.
Designing an algorithm is important before writing the program code as the
algorithm explains the logic even before the code is developed.
Data structure is a particular way of storing and organizing data so that it can be
used efficiently. Arrays, trees, linked lists, stacks, graphs, etc. are all data structures
and each of them allows us to perform different operations on data.
No matter which programming language you use, it is important to learn algorithm
design techniques in data structures in order to be able to build scalable systems.
Selecting a proper design technique for algorithms is a complex but important task.
Following are some of the main algorithm design techniques:
1.Brute-force or exhaustive search
2.Divide and Conquer
3.Greedy Algorithms
4.Dynamic Programming
5.Branch and Bound Algorithm
6.Randomized Algorithm
7.Backtracking
A given problem can be solved in various different approaches and some
approaches deliver much more efficient results than others. Algorithm analysis is a
technique used to measure the effectiveness and performance of the algorithms. It
helps to determine the quality of an algorithm based on several parameters such as
user-friendliness, maintainability, security, space usage and usage of other
resources.