Software is governing the world. The core of software is algorithms. There are thousands of algorithms, and which algorithms belong to the "pearl on the Crown? Marcos Otero gave his opinion.
What is an algorithm?
In general, an algorithm is a clearly defined computing process. Some values or a group of values can be used as input and some or a group of values can be generated as output. Therefore, an algorithm is a series of computing steps for converting input into output.
-Thomas H. cormen, chales E. leiserson, algorithm entry 3
In short, an algorithm is a series of steps that can complete a specific task. It should have three main features:
1. Limited
2. Clear instructions
3. Valid
The following are the top 10 algorithms recommended by Marcos Otero:
1. Merge Sorting, fast sorting, and stacked sorting
The best sorting algorithm is closely related to requirements and is difficult to judge. However, in terms of usage, these three methods are more frequently used.
Sort by Feng? Noriman was invented in 1945. This is a comparison-based sorting algorithm that uses a divide-and-conquer method to solve the problem. The order is O (n ^ 2 ).
Fast sorting can adopt the in-situ segmentation method or the divide-and-conquer algorithm. This is not a stable sorting algorithm, but it is very effective for Array sorting based on RAM (memory.
Heap sorting uses Priority Queues to reduce the search time in data. This algorithm is also an in-situ algorithm, not a stable sorting algorithm.
These sorting algorithms have greatly improved compared with the previous Bubble sorting algorithms. In fact, we would like to thank them for today's data mining, artificial intelligence, link analysis, and most computing tools, including the web.
2. Fourier transformation and Fast Fourier Transformation
Our entire digital world uses these two simple but very powerful algorithms to convert signals from the time domain to the frequency domain or vice versa. Actually, thanks to these algorithms for reading this article.
The Internet, your wifi, smart phones, phones, computers, routers, and satellites use these algorithms in various ways. If you don't study these algorithms, you won't get a degree in electronics, computing, or communication.
3. Dijkstra Algorithm
Dijkstra is a graph search algorithm. Many problems can be modeled as graphs, and Dijkstra can be used to find the shortest path between two nodes. Without the Dijkstra algorithm, the operation efficiency of the Internet will be greatly reduced. Although we already have a better solution for finding the shortest path, the Dijkstra algorithm is still used by many systems due to stability requirements.
4. RSA Algorithm
Without Password and network security, the Internet will not be as important as today, because e-commerce and e-commerce require these technologies to ensure transaction security. The RSA algorithm is one of the most important cryptographic algorithms. The algorithm was developed by founder Ron Rivest, Adi Shamir, and Leonard Adleman of the same name. It popularized cryptography to thousands of households and laid the foundation for the application of cryptography. RSA is simple and complex: how to share a public key between an independent platform and an end user. The solution is encryption. The foundation of RSA encryption is a very simple number theory fact: it is very easy to multiply two large prime numbers, but it is extremely difficult to break down the product by line, therefore, the product can be published as an encryption key. However, as distributed computing and quantum computer theories become increasingly mature today, RSA encryption security is challenged.
5. Secure Hash Algorithm (SHA)
This is not actually an algorithm, but a series of cryptographic Aggregate functions developed by the National Institute of Standards and Technology of the United States. However, this series of functions are the cornerstone of global operation. The application store, email, anti-virus, and browser are using the Sha series functions. The Sha function can be used to determine whether the downloaded content is what you want, or whether it is suffering from man-in-the-middle or phishing attacks.
6. integer factorization
This is a frequently used mathematical algorithm in the field of computing. Without this algorithm, cryptography will become much less secure. Integer factorization is a series of steps used to break a sum into a series of prime factors. Integer factorization can be considered as a FNP problem (FNP is an extension of a typical NP problem that is hard to solve ).
Many cryptographic protocols are based on a large combination or related issues that are hard to resolve. For example, the RSA problem mentioned above. If an algorithm can effectively break down any number, the RSA-based public key and password system will become insecure.
The birth of quantum computing makes it easy to solve this problem, and opens up a brand new field. The properties of the sub-world can be used to make the system more secure.
7. Link Analysis
In the Internet era, the analysis of relations between different entities is crucial. From search engines and social networks to marketing analysis tools, everyone wants to find the true structure of the Internet.
Link Analysis is undoubtedly one of the greatest puzzles and misunderstandings about algorithms. The problem is that there are different methods for Link Analysis, and adding some features will make each algorithm slightly different (thus making the algorithm subject to patent protection), but basically these algorithms are similar.
The link analysis algorithm was first invented by Gabriel Pinski and Francis Narin in 1976. The idea behind it is very simple, that is, to convert a graph into a feature value in the form of a matrix, and the feature value helps to understand the structure of the graph and the relative importance of each node.
Google's PageRank, Facebook displays news sources, Google +, Facebook friend recommendations, LinkedIn work and contact recommendations, Netflix and Hulu movie recommendations, YouTube video recommendations, etc. all use link analysis algorithms. Although each has different goals and parameters, the mathematics behind them is the same.
Although Google seems to be the first company to use such algorithms, Baidu founder Li Yanhong's search engine "rankdex", which was launched two years ago by Google, has used this idea to rank the search engine.
8. Proportional Integral Differential Algorithm
If you have used airplanes, cars, microservices, or mobile networks, and you have seen robots in factories, you have seen the role of this PID algorithm.
This algorithm uses a Control Loop Mechanism to minimize errors between the expected output signal and the actual output signal. As long as signal processing or electronic systems are required to control automated mechanical, hydraulic, or thermal systems, it is necessary to use them.
Therefore, we can say that without this algorithm, modern human civilization will no longer exist.
9. Data Compression Algorithm
Data Compression Algorithms are undoubtedly very important because they are used in almost all structures. In addition to the most obvious compressed files, Web pages are compressed during download. Video games, videos, music, data storage, cloud computing, databases, and so on all use compression algorithms. Almost all applications use compression algorithms. Compression Algorithms make the system more cost effective, but it is difficult to determine which one is most important, because different applications use different compression algorithms from zip to MP3, JPEG or MPEG-2.
10. Random Number Generation Algorithm
Many applications require random numbers. Random numbers must be generated for initial conditions such as Interlink connection, password system, video game, AI, optimization, and problems, and finance. However, we do not actually have a "real" random number generator, although some pseudo-random number generators are also very effective.
Of course, the top 10 algorithms may also make up for the question. Different perspectives may have different opinions on the importance of algorithms. If you think this list is incorrect, you may wish to contribute your opinion in the comments.
Original article: medium.com
Top 10 algorithms that govern the world