Try to explain what the algorithms are and which algorithms are dominating our world.



01 What is an algorithm?



In short, any well-defined computational step can be called an algorithm, taking one or a set of values as input and one or a set of values as output. (Source: Homas H. Cormen, Chales E. Leiserson, Introduction to Algorithms, 3rd Edition)


An algorithm can be understood as a series of steps used to solve a particular problem (not only do computers need algorithms, but we use them in our daily lives too). The algorithm must have the following three important characteristics:
  • Finite, the algorithm must be aborted after a finite number of steps are performed.

  • Exactness, each step of the algorithm must be defined exactly.

  • Feasibility, a particular algorithm must be able to solve a particular problem in a particular time.

In fact, algorithms, though widely used in computing, are entirely mathematical. In fact, the earliest mathematical algorithms date back to 1600 BCE – Babylonians’ algorithms for factoring and square roots.
So what are the 10 computer algorithms that make our lives what they are today? Take a look at the list below, in no particular order:
01



MERGE SORT, QUICK SORT and HEAP SORT









Which sorting algorithm is the most efficient? It depends. So that’s why I put these three algorithms together, and you probably use one of them more often, but they’re different.
Merge sort, one of the most important algorithms to date, is a classic application of divide-and-conquer, invented by mathematician John von Neumann in 1945.
Quicksort algorithm, which combines set partition algorithm and divide-and-conquer algorithm, is not very stable, but it is quite efficient in processing am-based arrays.
Heap sorting, which uses a priority queuing mechanism to reduce the search time for sorting, is also not very stable.
Compared to earlier sorting algorithms, such as the bubble algorithm, these algorithms take sorting algorithms up a big step. Thanks to these algorithms, data mining, artificial intelligence, link analysis, and most web computing tools exist today.
02



Fourier transform and Fast Fourier transform





These two algorithms are simple, but quite powerful, the whole digital world can not do without them, their function is to realize the time domain function and frequency domain function between the mutual conversion. This article is thanks to these algorithms.
The Internet, WIFI, smartphones, landlines, computers, routers, satellites, and almost every other computer-related device is related to them in one way or another. You can’t get a degree in electrical, computer or communications engineering without these two algorithms. (USA)
03



Dijkstra’s algorithm








It is safe to say that without this algorithm, the Internet would certainly not be as efficient as it is. This algorithm can be used to find the shortest distance between two nodes in a graph for any problem that can be represented in a graph model.
Although there are many better ways to solve the shortest path problem, the stability of dikstow algorithm cannot be replaced.
04



RSA Asymmetric encryption algorithm
It is no exaggeration to say that the Internet would not be as important today without the algorithm’s contribution to cryptography and network security. The Internet is insecure these days, but when it comes to money-related issues, we need to make sure that we have enough security. If you don’t feel safe online, you won’t be foolish enough to enter your bank card information on the web.
RSA algorithm, one of the most wonderful algorithms in the field of cryptography, was proposed by the three founders of RSA Company, and laid the foundation of today’s key research field. The problem this algorithm solves is both simple and complex: how to share keys between individual platforms and users without sacrificing security.
05



Secure Hash Algorithm
This is not exactly an algorithm, but a set of cryptographic hash functions first proposed by the National Institute of Standards and Technology. Whether it’s your app store, your email and antivirus software, your browser, etc., all use this algorithm to ensure that you download properly and are not subject to “man-in-the-middle” attacks, or “phishing.”
06



Integer factorization algorithm
This is actually a mathematical algorithm, but it has been widely used in computing. Without this algorithm, encrypted messages would not be so secure. In a series of steps, it can decompose a synthetic number into non-divisible factors.
Many encryption protocols use this algorithm, such as the RSA algorithm just mentioned.
07



Link Analysis algorithm




In the Internet age, the analysis of the relationship between different portals is crucial. From search engines and social networking sites to market analysis tools, every effort is being made to find the true fabric of the Internet.
Link analysis algorithms have always been one of the most confusing algorithms in the field, with different implementations and their own characteristics that make each implementation different, but the basic principles are very similar.
The mechanics of a link analysis algorithm are simple: you can represent a graph with a matrix and form an eigenvalue problem. Eigenvalue problems can help you analyze the structure of the “graph” and the weight of each node. This algorithm was proposed in 1976 by Gabriel Pinski and Francis Narin.
Who would use this algorithm? Google page rankings, when Facebook sends you news streams (so news streams aren’t algorithms, they’re the result of algorithms), friend recommendations on Google + and Facebook, job recommendations on LinkedIn, video recommendations on Youtube, and so on.
Google is widely credited with being the first to use such algorithms, but robin Li’s RankDex, a small search engine, used the same idea back in 1996 (two years before Google’s launch). Massimo Marchioli, creator of the Hyper Search Search algorithm, used a similar algorithm. Both men went on to become legendary figures in Google history.
08



Proportional Integral Derivative Algorithm








Planes, cars, televisions, cell phones, satellites, factories, robots, and so on.
Simply speaking, this algorithm mainly reduces the error between the preset output signal and the real output signal through the “control loop feedback mechanism”. Any time you need signal processing, or electronic systems to control automatic machinery, hydraulic and heating systems, you need to do this.
Without it, there would be no modern civilization.
09



Data compression algorithm
There are many different data compression algorithms. Which one is best? Depending on the direction of application, compressed MP3, JPEG and MPEG-2 files are different.
Where can I see them? Not just compressed files in folders. The web page you’re looking at uses a data compression algorithm to download information to your computer. In addition to text, games, video, music, data storage, cloud computing, and so on. It makes systems easier and more efficient.
010



Random number generation algorithm




As of now, computers have no way of generating “truly” random numbers, but pseudo-random number generation algorithms are sufficient. These algorithms have applications in many fields, such as network connectivity, cryptography, secure hashing algorithms, online games, artificial intelligence, and conditional initialization in problem analysis.


BLOG address: www.liangsonghua.com

Pay attention to wechat public number: songhua preserved egg bulletin board, get more exciting!

Introduction to our official account: We share our technical insights from working in JD, as well as JAVA technology and best practices in the industry, most of which are pragmatic, understandable and reproducible