What Does Algorithm Mean?
In its purest sense, an algorithm is a mathematical process to solve a problem using a finite number of steps.
In the world of computers, an algorithm is the set of instructions that defines not just what needs to be done but how to do it.
Techopedia Explains Algorithm
Probably the best way to understand an algorithm is to think of it as a recipe. There are many ways to bake cookies, but by following a recipe a baker knows to first preheat the oven, then measure out the flour, add butter, chocolate chips, etc. until the desired cookies are complete.
Using algorithms, a programmer or computer scientist can tell his machine to query database A for last month’s sales figures, compare them to the prior month and the same month last year, and then display it in a bar graph.
Mix multiple algorithms together and you have a working computer program.
As can be expected, there are numerous types of algorithms for virtually every kind of mathematical problem there is to solve. There are:
-
Numerical algorithms.
-
Algebraic algorithms.
-
Geometric algorithms.
-
Sequential algorithms.
-
Operational algorithms.
-
Theoretical algorithms.
There are also various algorithms named after the leading mathematicians who invented them:
-
Shor’s algorithm.
-
Girvan-Newman algorithm.
-
Several Euclidian algorithms.
There are also those named after the specific problem they solve, such as:
-
Bidirectional search algorithm.
-
K-way merge algorithm.
In the computing field, most algorithms tend to solve data management and analysis problems.
Top Computing Algorithms
(According to Ohio State University)
Sort
Arranging data in an efficient and useful manner. These include quick sort, merge sort, counting sort and others;
Search
Finding key data in sorted data sets. Binary Search is used for searching in linear data structures and sorted data sets. Depth/Breadth First Search (DFS/BFS) is used for Graph data structures and is employed by search engines for web crawling.
Hashing
Similar to search but with an indexing and key ID component. Hashing provides superior results because it assigns a key to certain data;
Dynamic Programming
Converts larger, complex problems into series of smaller problems;
Exponential by Squaring (EbS)
Also known as binary exponentiation, EbS speeds up the calculation of large integers, polynomials, square matrices and other complex problems;
String Matching and Parsing
Designed to find patterns in large data sets using predefined terms and restrictions;
Primality Testing
Determines prime numbers either deterministically or probabilistically; mostly used in cryptography.
Networking also relies heavily on algorithms, which govern everything from packet routing and traffic management to security and encryption. Traditionally, routing algorithms were largely static in that they established fixed points of network activity.
Recently, however, network providers have shifted toward more adaptive algorithms that can make changes on the fly in response to traffic or topology considerations.
Algorithms are at the heart of just about everything in the digital world, from high-speed stock trading to automated dishwashers.
As technology becomes even more ubiquitous and we find ourselves relying on smart cars, smart homes, smart cities and even smart bodies, it may seem like we are interacting with an entirely new form of consciousness on the planet, one that walks, talks and thinks.
In reality, though, it’s just lots of numbers running through lots of algorithms.