# The Role of Algorithms in Computing

**Pre-requisite:** Introduction to Algorithms

- The word Algorithm means “a process or set of rules to be followed in calculations or other problem-solving operations”. Therefore Algorithm refers to a set of rules/instructions that step-by-step define how a work is to be executed upon in order to get the expected results.
- Algorithms are at the
*core*of most techniques used in contemporary computers alongside other technologies. - An algorithm is an abstraction of a program to be executed on a physical machine(model of Computation).

**Algorithm Design Technique**

__Strategy or paradigm__— General approach to solve program algorithmically__Brute Force__— Straight forward technique with naïve approach__Divide and conquer__— problem is divided into smaller instances__Decrease and conquer__— Instance size is decreased to solve the problem__Transform and conquer__— Instance is modified and then solved__Dynamic Programming__— Results of smaller , reoccurring instances are obtained to solve problem__Greedy Technique__— Solve the problem by making locally optimal decisions

**Analysis of Algorithm**

__Time Efficiency__— Indicates how fasts algorithm runs__Space Efficiency__— How much extra memory the algorithm needs to complete its execution__Simplicity__— Generating sequence of instructions which are easy to understand__Generality__— Range of inputs it can accept .

**Practical applications of algorithms:**

- The
without which it is difficult to imagine a day is the result of**Internet***clever and efficient algorithms*. With the aid of these algorithms, various sites on the Internet are able to manage and manipulate this large volume of data. Finding good routes on which the data will travel and using search engine to find pages on which particular information is present. - Another great milestone is the Human Genome Project which has great progress towards the goal of identification of the 100000 genes in human DNA, determining the sequences of the 3 billion chemical base pairs that make up the human DNA, storing this
*huge amount of information*in databases, and developing tools for data analysis. Each of these steps required*sophisticated and efficient algorithms.* - The day-to-day
activities is hugely dependent on our personal information such as credit/debit card numbers, passwords, bank statements, OTPs and so on. The core technologies used include public-key cryptocurrency and digital signatures which are based on numerical algorithms and number theory.**electronic commerce** - The approach of
**linear programming**is also one such technique which is widely used like- In
*manufacturing*and other commercial enterprises where resources need to be allocated scarcely in the most beneficial way. - Or a institution may want to determine where to spend money buying advertising in order to
*maximize*the chances of their institution to grow.

- In
**Shortest path algorithm**also has an extensive use as- In a
*transportation*firm such as a trucking or railroad company, may have financial interest in finding shortest path through a road or rail network because taking shortest path result in lower labour or fuel costs. - Or a
*routing node*on the Internet may need to find the shortest path through the network in order to route a message quickly.

- In a
- Even an application that does not require algorithm content at the application level relies heavily on algorithms as the application depends on
*hardware, GUI, networking or object orientation*and all of these make an extensive use of algorithms.