# Most Important Algorithms That You Should Know

Algorithms are used by all of us all the time with or without our direct knowledge. They have applications in many different disciplines, from math and physics to, of course, computing. These are the most important algorithms that you should know.

1. Boolean (binary) algebra

You might be familiar with the term Boolean from mathematics, logic, and computer coding. It was created by  George Boole in 1847 work An Investigation of the Laws of Thought. Boolean algebra is a branch of algebra in which a variable can only ever be true or false (usually binary 1 or 0). This algorithm is widely recognized as the foundation of modern computer coding. It is still in use today, especially in computer circuitry.

2. Fast Fourier Transform

This algorithm was created by Carl Gauss, Joseph Fourier, James Cooley, and John Tukey in 1802, 1822 and 1965. It is used to break down a signal into the frequencies that compose it – much like a musical chord can be expressed in frequencies, or pitches, of each note therein. “FFT relies on a divide-and-conquer strategy to reduce an ostensibly O(N2) chore to an O(N log N) frolic.

3. Google’s ranking algorithm

PageRank is, arguably, the most used algorithm in the world today. It is, of course, the foundation of the ranking of pages on Google’s search engine. It was created by Larry Page (mainly) and Sergey Brin in 1996.  It is not the only algorithm that Google uses nowadays to order pages on its search result, but it is the oldest and best known of them.

The PageRank algorithm is given by the following formula:

PR(A) = (1-d) + d (PR(T1)/C(T1) + … + PR(Tn)/C(Tn))

where:

• PR(A) is the PageRank of page A,
• PR(Ti) is the PageRank of pages Ti which links to page A,
• C(Ti) is the number of outbound links on page Ti and;
• d is a damping factor that can be set between 0 and 1.

4. The simplex method for linear programming

This is one of the most successful algorithms of all time despite the fact that most real-world problems are rarely linear in nature. It was created by George Dantzig in 1947. It was widely used in the world of industry or any other situation where economic survival rests on the ability to maximize efficiency within a budget and/or other constraints.

It works by using a systematic strategy to generate and validate candidate vertex solutions within a linear program. At each iteration, the algorithm chooses the variable that makes the biggest modification towards the minimum-cost solution. That variable then replaces one of its covariables, which is most drastically limiting it, thereby shifting the simplex method to another part of the solution set and toward the final solution.

5. Kalman Filter

Kalman Filtering, aka linear quadratic estimation (LQE), helps you make an educated guess about what a system will likely do next, within reason, of course. Kalman filters are great for situations where systems are constantly changing.  Created by Rudolf E. Kálmán in 1958-1961  is a general and powerful tool for combining information in the presence of uncertainty.

6. QR algorithms for computing eigenvalues

It was created in the late 1950s by John G. F. Francis and by Vera N. Kublanovskaya independently. The QR algorithm, aka eigenvalue algorithm, greatly simplifies the calculations of eigenvalues it is important in numerical linear algebra. In addition to enabling the swift calculation of eigenvalues, it also aids in the processing of eigenvectors in a given matrix. Its basic function is to perform QR decomposition, write a matrix as a product of an orthogonal matrix and an upper triangular matrix, multiply the factors in the reverse order and iterate.

7. JPEG and other data compression algorithms

It was created in 1992 by the Joint Photographic Experts Group, IBM, Mitsubishi Electric, AT&T, Canon Inc., and ITU-T Study Group 16. It is difficult to single out one particular data compression algorithm as its value or importance depends on the files’ applications. Data compression algorithms, like JPEG, MP3, zip, or MPEG-2, are widely used the world over. Most have become the de facto standard for their particular application. They have made computer systems cheaper and more efficient over time.

8. Quicksort algorithm

Created by Tony Hoare of Elliott Brothers, Limited, London in 1962. It provided a means of quickly and efficiently sorting lists alphabetically and numerically. Quicksort algorithm used a recursive strategy to “divide and conquer” to rapidly reach a solution. It would prove to be two to three times quicker than its main competitors’ merge sort and heapsort. It works by choosing one element to be the “pivot”. All others are then sorted into “bigger” and “smaller” piles of elements relative to the pivot. This process is then repeated in each pile.