Some important algorithms-index

Source: Internet
Author: User
Tags greatest common divisor python script

Here are some of the more important algorithms, the original list of 32, but I think there are many number theory, and the computer is irrelevant, so there is no choice. The following, some of which we often use, and some basic use. Some are very common, some are very biased. But it's good to know. You are also welcome to leave an algorithm that you feel is meaningful. (Note: This article is not a translation, and most of the algorithmic descriptions are excerpted from Wikipedia, because Wikipedia describes it as a professional)

  1. A * search algorithm
    Commonly known as a-star algorithm. This is a path that has multiple nodes on the graphics plane, and the lowest pass cost algorithm is obtained. It is often used for mobile computing of the NPCs in the game, or for mobile computing on the online game bot. The algorithm, like the Dijkstra algorithm, can find a shortest path and, like BFS, makes heuristic searches.
  2. Beam Search
    Beam Search method is a heuristic method to solve the optimization problem, it is developed on the basis of branch and bound method, it uses Heuristic method to estimate K best path, only from the K-path down search, that is, each layer only satisfied nodes will be preserved, the other nodes are permanently discarded , so the score branch bound method can save the running time greatly. Bundle search was first applied in the field of artificial intelligence in the mid 1970s, and in 1976 Lowerre used a beam search method in its speech recognition system called Harpy, whose goal was to search for several potential optimal decision paths in parallel to reduce backtracking and obtain a solution quickly.
  3. A search algorithm for binary sub-extraction
    A search algorithm that finds a particular element in an ordered array. The search process begins with the middle element of the array, and if the intermediate element is exactly the element to be found, the search process ends, and if a particular element is greater than or less than the middle element, it is found in the half of the array greater than or less than the middle element, and is compared with the beginning of the intermediate element. Each comparison of this search algorithm reduces the search scope by half.
  4. Branch and bound
    The branch-bound (branch and bound) algorithm is a method of searching for the solution of a problem on the solution space tree of the problem. But unlike the backtracking algorithm, the branch-bound algorithm uses breadth-first or least-cost-first method to search the solution space tree, and in the branch-bound algorithm, each Slipknot point has only one chance to become the expansion node.
  5. Data compression
    Data compression is a technique that increases data density and ultimately reduces the storage space of data by reducing the redundancy of data stored in the computer or in communication propagation. Data compression is widely used in the field of file storage and distributed systems. Data compression also represents the increase in size media capacity and the expansion of network bandwidth.
  6. Diffie–hellman Key Negotiation
    Diffie–hellman key exchange, referred to as "D–h", is a security protocol. It allows both parties to establish a key through an unsecured channel without any prior information from each other. This key can be used as a symmetric key in subsequent communication to encrypt the content of the communication.
  7. Dijkstra ' s algorithm
    The Dicos algorithm (Dijkstra) was invented by the Dutch computer scientist Aizeg Dicos (Edsger wybe Dijkstra). The algorithm solves the problem of shortest path to a single source point to another vertex in a graph. For example, if the vertices in the figure represent the city, and the weights on the edge indicate the distance between the cities by car, the Dicos algorithm can be used to find the shortest path between the two cities.
  8. Dynamic planning
    Dynamic programming is a method used in mathematics and computer science to solve optimization problems involving overlapping sub-problems. The basic idea is that the original problem is decomposed into similar sub-problems, and the solution of the original problem is solved by the solution of the sub-problem in the process of solving. The idea of dynamic programming is the foundation of many kinds of algorithms, which is widely used in computer science and engineering field. The more famous examples are: solving the shortest path problem, knapsack problem, project management, network flow optimization and so on. There is also an article here that is more detailed.
  9. Euclidean algorithm
    In mathematics, the method of greatest common divisor, also known as Euclidean algorithm, is to find the algorithm. The division was first seen in Euclid's "Geometric Original" (vol. VII, Proposition I and II), while in China it dates back to the nine chapters of Arithmetic, which appeared in the Eastern Han Dynasty.
  10. Maximum expectation (EM) algorithm
    In statistical computation, the maximal expectation (EM) algorithm is the algorithm for finding the maximum likelihood estimation of parameters in the probability (probabilistic) model, in which the probabilistic model relies on the invisible hidden variable (latent Variable). Maximum expectations are often used in the field of data clustering for machine learning and computer vision. The maximum expectation algorithm is calculated by alternating two steps, the first step is to calculate the expectation (E), use the existing estimate of the hidden variable, calculate its maximum likelihood estimate; the second step is to maximize (M) and maximize the maximum likelihood value calculated on the E step to calculate the value of the parameter. The parameter estimates found on M-step are used in the next E-step calculation, and the process is constantly alternating.
  11. Fast Fourier transform (FFT)
    Fast Fourier transform (Fourier transform,fft) is a fast algorithm for discrete Fourier transform and can be used to calculate inverse transform of discrete Fourier transform. Fast Fourier transform is widely used, such as digital signal processing, calculation of large integer multiplication, solving partial differential equation and so on. This article describes only a variety of fast algorithms, for the properties and applications of discrete Fourier transforms, see discrete Fourier transforms.
  12. hash function
    Hash function is a method of creating small digital "fingerprints" from any kind of data. The function scrambles the data and re-creates a fingerprint called the hash value. Hash values are typically used to represent a short, random string of letters and numbers. A good hash function rarely has a hash conflict in the input field. In hashing and data processing, not suppressing conflicts to differentiate data makes database records more difficult to find.
  13. Heap Sort
    Heapsort is a sort algorithm that is designed using a data structure such as a stacked tree (heap). A stacked tree is a structure that approximates a complete binary tree and satisfies a stacked property at the same time: that is, the key value or index of the child node is always less than (or greater than) its parent node.
  14. Merge sort
    The merge sort is an efficient sorting algorithm based on the merging operation. This algorithm is a very typical application of the partition method (Divide and Conquer).
  15. RANSAC algorithm
    RANSAC is the abbreviation for "RANdom SAmple Consensus". The algorithm is an iterative method for estimating mathematical model parameters from a set of observational data, proposed by Fischler and Bolles in 1981, which is a non-deterministic algorithm, because it can only get reasonable results with a certain probability, and this probability is increased with the increase of the number of iterations. The basic hypothesis of the algorithm is that "inliers" (those points that support the estimation of model parameters) and "outliers" (points that do not conform to the model) are present in the observational data set, and the observed data is affected by noise. RANSAC assumes that given a set of "inliers" data, the optimal model for this set of points can be obtained.
  16. RSA encryption algorithm
    This is a public key cryptography algorithm and the first algorithm in the world to be used for signature. RSA has been patented today, it is widely used in e-commerce encryption, we all believe that as long as the key is long enough, the algorithm will be safe
  17. And look for the set Union-find
    The disjoint is a tree-type data structure, which is used to deal with the merging and querying problems of disjoint sets (sets). Often used in the forest to express.
  18. Viterbi algorithm
    Find the most probable sequence of hidden states (finding most probable sequence of hidden states)

Appendix

      • For this world of algorithms, you can look at this page of Wikipedia: Http://en.wikipedia.org/wiki/List_of_algorithms
      • About the sorting algorithm, you can look at this site of the several articles "a display sorting process of the Python script", "A sorting algorithm comparison of the site"

Some important algorithms-index

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.