Design and Analysis of Algorithms - Everything You need to Know - Technic Hubs

Technic Hubs

Technic Hubs aims in providing hands-on experience on Machine Learning, Augmented Reality(AR), Virtual Reality(VR), Django(Web Development), Flutter and React(App Development), Internet of Things(IoT) with videos on Nepali.

Breaking

Saturday, June 23, 2018

Design and Analysis of Algorithms - Everything You need to Know

Design and Analysis of Algorithms 

 This article explains you everything about design and analysis of algorithms, from their introduction, types, importance and implementation of them to solve problems.
Design and Analysis of Algorithms | Technic Hubs

What is an Algorithm?

An Algorithm is a sequence of steps to solve a problem. Every work has an algorithm, from reading this blog to making a cup of tea; everything is a stepwise process. And hence an algorithm. The computer algorithm should have:
  1. Input:- Algorithms should take some input for processing
  2. Output:- Algorithms should be able to provide an output to the solution.
  3. Finiteness:- Algorithms should terminate after some time.
  4. Definiteness:- All steps of algorithms should be clear and precise
  5. Effectiveness:- Algorithm should be effective in a sense that it should perform each step correctly in limited time and space.

Kinds of Algorithm

  • searching, or looking for an item in a list
  • sorting, or putting a list in alphabetic or numeric order
  • shortest path, or finding the quickest way on a map from point A to point B
  • compression, or reducing the size of a data file

What is Design and Analysis of Algorithm (Introduction)

Design and Analysis of Algorithm are very important for designing an algorithm to solve different types of problems in the branch of computer science and information technology.



There are many ways to solve a particular problem with different approaches. Each approach has its own assumptions and set of requirements. We decide the best possible way to solve any problem after identifying the case requirements and the time and memory requirements it needs. Many of the programs need fast calculation but some need good management of memory and also when the inputs are to be dynamic. Assuming all the restrictions we find the time and space complexity of the algorithms we can use to find out the solution.

We have a list of algorithms we study the time and space complexity of them and select the best one for our problem or design the new one.


Why DAA?

  1.  Boost analytical and conceptual thinking
  2. Select appropriate problem-solving strategy in the real world problems

How to Analyze the Algorithms

Analyzing the algorithm means studying the case complexity, effectiveness, and finiteness of that Algorithm. This can be done in various ways, like:
  1. Asymptotic Analysis:
          Asymptotic Analysis includes the Big-Oh(O), Big-Theta(θ) and Big-Omega(Ω)
     notations. These notations are to analyze the growth rate of algorithms and make comparisons between algorithms. Big-Oh, Big-Theta, and Big-Omega help to analyze the worst case, average case, and best case respectively.
  2. Solving Recurrence Equations:-
         A recurrence is an equation that describes a function in terms of its value on smaller inputs. Recurrences are generally used in divide-and-conquer paradigm. This can be solved by Substitution Method, Recursion Tree Method or Master’s Theorem.
Conclusion
             At last, Algorithms are just set of steps that orders computers to perform a particular task. There are lots of algorithms to solve a single problem. DAA helps to analyze these algorithms and select the best among them. Asymptotic and Recurrence are some common way to analyze the algorithms. And DAA helps us to tackle the real world problems more effectively.


No comments:

Post a Comment