What is an algorithm?
In short, any well-defined calculation step can be called an algorithm that accepts one or a set of values as input and outputs one or a set of values. (Source: Homas H. Cormen, Chales E. Leiserson, 3rd edition of the algorithmic introduction)
It can be understood that the algorithm is a series of steps to solve a particular problem (not only the computer needs the algorithm, we also use the algorithm in our daily life). The algorithm must have the following 3 important features:
[1] there is poor sex. The algorithm must be aborted after a limited number of steps have been performed.
[2] the exact nature. Each step of the algorithm must be defined exactly.
[3] feasibility. Specific algorithms must be able to solve specific problems within a given time,
In fact, although the algorithm is widely used in computer field, but it is completely derived from mathematics. In fact, the earliest mathematical algorithms can be traced back to 1600 BC,-babylonians about the calculation of the square root of the factorization.
So what are the 10 computer algorithms that have created our lives today? Please see the form below, in no particular order:
1. Merge sort, fast sort (quick sort) and stacked sort (heap sort)
Which sorting algorithm is most efficient? This depends on the situation. That's why I put these 3 algorithms together, and maybe you're more likely to use one, but they are different.
The merge sort algorithm, one of the most important algorithms so far, is a typical application of the divide-and-conquer method, invented by mathematician John von Neumann in 1945.
The fast sorting algorithm, combined with the set partitioning algorithm and the divide-and-conquer algorithm, is not very stable, but is very efficient when dealing with the random array (am-based arrays).
Stacking sort, using the priority queue mechanism to reduce the search time when sorting, is also not very stable.
Compared with the earlier sorting algorithms (such as the Bubbling algorithm), these algorithms put the sorting algorithm on a large step. Thanks to these algorithms, today's data mining, AI, link analysis, and most web computing tools.
2. Fourier transform and fast Fourier transform
These two algorithms are simple, but very powerful, the whole digital world can not leave them, its function is to achieve the time domain function and frequency domain function between the transformation. Can see this article, is also the blessing of these algorithms.
Internet, WIFI, smartphones, landlines, computers, routers, satellites and almost all computer-related devices are more or less related to them. Without these two algorithms, you simply can't get a degree in electronics, computer or communications engineering. (USA)
3. Substituting Cornu (Dijkstra ' s algorithm)
It can be said that without this algorithm, the Internet certainly does not have the current efficiency. As long as the problem can be expressed in the "graph" model, we can use this algorithm to find the shortest distance between the two nodes in the graph.
Although there are many better ways to solve the shortest path problem today, the stability of the Dekes algorithm is still irreplaceable.
4. RSA Asymmetric Encryption algorithm
It is no exaggeration to say that without this algorithm's contribution to cryptography and cybersecurity, the Internet's status may not be so high today. Now the network is insecure, but when it comes to money-related problems, we need to ensure that there is enough security, if you feel that the network is not safe, will not be silly to enter their own Yinhangka information on the Web page.
RSA algorithm, one of the most forked algorithms in the field of cryptography, is presented by the three founders of RSA, and lays the key research area for today. The problem solved with this algorithm is simple and complex: how to share a key between a standalone platform and a user in a secure environment.
5. Hash security algorithm (Secure Hash Algorithm)
To be exact, this is not an algorithm, but a set of cryptographic hash functions, first proposed by the American Institute of National Standards and technology. Whether it's your app store, email and anti-virus software, or a browser, etc., use this algorithm to ensure that you are downloading normally, and whether it is "man-in-the-middle attack" or "phishing".
6. Integer factorization algorithm (integers factorization)
This is actually a mathematical algorithm, but has been widely used in the field of computers. Without this algorithm, encrypted information is not so secure. Through a series of steps, it can decompose a number of compositions into non-re-divided number factors.
Many cryptographic protocols use this algorithm, such as the RSA algorithm just mentioned.
7. Link Analysis algorithm
In the internet age, the analysis of relationships between different portals is crucial. From search engines and social networking sites to market analysis tools, they are sparing no effort to find the true structure of the Internet.
Link analysis algorithm has been one of the most puzzling algorithms in this field, the implementation of different ways, and its own characteristics so that each implementation method of the algorithm is alienated, but the basic principle is very similar.
The mechanism of link analysis algorithm is very simple: you can use a matrix to represent a "graph" to form the eigenvalue problem. The eigenvalue problem can help you analyze the structure of this "graph" and the weights of each node. This algorithm was presented in 1976 by Gabriel Pinski and Francis Narin.
Who would use this algorithm? Google's page rankings, when Facebook sends you a stream of information (so the flow is not an algorithm, but the result of an algorithm), Google + and Facebook's friends referral feature, LinkedIn's job recommendations, YouTube video recommendations, and more.
Google is widely thought to be the first to use such algorithms, but in fact the "Rankdex" small search engine that Robin Li created in 1996 (2 years before Google was invented) used this idea. Hyper Search Algorithm creator Massimo Machiori also used similar algorithms. All two of them became legendary figures in Google history.
8. Proportional calculus algorithm (proportional Integral derivative algorithm)
Planes, cars, televisions, cell phones, satellites, factories, robots, and so on, all have this algorithm in the shadows.
Simply put, this algorithm mainly through "control loop feedback mechanism", reduce the preset output signal and the real output signal between the error. As long as the need for signal processing, or electronic systems to control automation machinery, hydraulics and heating systems, it is necessary to use this method of calculation.
Without it, there would be no modern civilization.
9. Data compression algorithm
There are many kinds of data compression algorithms, which is the best? This depends on the direction of application, and the compression mp3,jpeg and MPEG-2 files are different.
Where can I see them? More than just compressed files in a folder. The Web page you're looking at is using a data compression algorithm to download the information to your computer. In addition to text, games, videos, music, data storage, cloud computing, etc. are all. It makes various systems easier and more efficient.
10. Random Number generation algorithm
Until now, computers have not been able to generate "true" random numbers, but pseudo-random number generation algorithms are sufficient. These algorithms are used in many fields, such as network connectivity, cryptography, secure hashing algorithms, network games, artificial intelligence, and conditional initialization in problem analysis.
This form is not complete, and many of the algorithms that are closely related to us are not mentioned, such as machine learning and matrix multiplication. In addition, knowledge is limited, if there is a leak, but also to correct.
10 algorithms that dominate the world--"repost"