Some Important Algorithms

Source: Internet
Author: User

 

Cool shell:Http://CoolShell.cn/

Original article:Http://coolshell.cn /? P = 2583 

Below are some importantAlgorithm,OriginalI have listed 32, But I think many of them are in number theory and are irrelevant to computers, so they are not selected. Some of the following are often used, and some are basically not used. Some are very common, and some are very biased. But it is also a good thing to understand. You are also welcome to leave behind algorithms that make sense to you. (Note: This articleArticleNot translation. Most of the algorithm descriptions are taken from Wikipedia, because Wikipedia is very professional)

  1. A * Search Algorithm
    It is also known as the astar algorithm. This is an algorithm with multiple node paths on the graphic plane to find the lowest cost. It is often used in the mobile computing of the NPC in the game or the mobile computing of the BOT in the online game. This algorithm ImageDijkstra AlgorithmYou can find a shortest path.BFSSimilarly, perform heuristic search.
  2. Beam Search
    Beam search is a heuristic method to solve the optimization problem. It is developed on the basis of the branch and bound method. It uses heuristic methods to estimate K best paths, only search down from these K paths, that is, only satisfied nodes are retained for each layer, and other nodes are permanently discarded, thus greatly saving the running time by the score branch and demarcation method. Bundle search was first applied to the AI field in the middle of 1970s. In 1976, lowerre used the bundle Search Method for the first time in its harpy speech recognition system, his goal is to search several potential optimal decision paths in parallel to reduce backtracking and quickly obtain a solution.
  3. Binary Search Algorithm
    A search algorithm used to search for a specific element in an ordered array. The search process starts from the intermediate element of the array. If the intermediate element is the element to be searched, the search process ends. If a specific element is greater than or less than the intermediate element, search in the half where the array is greater than or less than the intermediate element, and compare it from the intermediate element as before. This search algorithm reduces the search range by half for each comparison.
  4. Branch and bound
    The branch and bound algorithm is a method used to search for a problem in the spatial tree of the problem. However, unlike the backtracking algorithm, the Branch/Boundary algorithm searches for a spatial tree by the breadth-first or minimum-consumption-first method. In the branch/Boundary algorithm, each active node has only one chance to become an extension node.
  5. Data Compression
    Data Compression is a technology that reduces the redundancy of data stored in computers or transmitted through communication to increase the data density and ultimately reduce the storage space of data. Data Compression is widely used in file storage and distributed systems. Data Compression also represents the increase in size of media capacity and the expansion of network bandwidth.
  6. Diffie-Hellman Key Negotiation
    Diffie-Hellman Key Exchange (D-H) is a security protocol. It allows both parties to establish a key through insecure channels without any prior information from the other party. This key can be used as a symmetric key for subsequent communication to encrypt the communication content.
  7. Dijkstra's Algorithm
    The Dickus algorithm (Dijkstra) is a Dutch computer scientist.Izger Dickus(Edsger wybe Dijkstra. The algorithm solves the shortest path from a single source point to another vertex in the directed graph. For example, if the vertex in the figure represents the city, and the weight on the edge represents the distance between cities, the Dickus algorithm can be used to find the shortest path between two cities.
  8. Dynamic Planning
    Dynamic programming is used in mathematics and computer science to solve overlapping subproblems.OptimizationProblem Method. The basic idea is to break down the original problem into similar subproblems and find the solution of the original problem through the subproblem solution in the process of solving the problem. The idea of dynamic planning is the basis of multiple algorithms and is widely used in computer science and engineering. Well-known Application Instances include: SolvingShortest PathProblem,Backpack Problems,Project Management,Network FlowOptimization. There are alsoAn articleIn more detail.
  9. Euclidean Algorithm
    In mathematics, the moving phase division, also known as Euclidean algorithm, isMaximum common approx.. The division of the moving phase first appeared onEuclideanOf 《Ry(Volume VII, proposition I and II), which can be traced back to 《Chapter 9 Arithmetic.
  10. Maximum expectation (EM) Algorithm
    In statistical calculation, the maximum expectation (EM) algorithm isProbability(Probabilistic) Finding the Maximum Likelihood Estimation Algorithm for parameters in the model, where the probability model depends on hidden variables that cannot be observed (Latent Variable). The maximum expectation is often usedMachine LearningAndComputer VisionOfData Clustering(Data Clustering. The maximum Expectation Algorithm is calculated in two steps. The first step is to calculate the expectation (e). The maximum likelihood estimation value of the Hidden variable is calculated using the existing estimation value; the second step is to maximize (M) and maximize the maximum likelihood value obtained in Step E to calculate the parameter value. The parameter estimates found in step m are used in the Next Step E calculation, and the process continues to alternate.
  11. Fast Fourier Transformation(FFT)
    Fast Fourier Transform (FFT), which isDiscrete Fourier TransformationIt can also be used to calculate the inverse transformation of Discrete Fourier transformation. Fast Fourier Transform is widely used, suchDigital Signal Processing, ComputingBig integer multiplication, SolutionPartial Differential EquationAnd so on. This entry only describes various fast algorithms. For the nature and application of discrete Fourier transform, seeDiscrete Fourier Transformation.
  12. Hash Functions
    Hash function is a method for creating small numbers "Fingerprints" from any data type. This function breaks down the data and creates a new fingerprint called the hash value. Hash values are generally used to represent a string consisting of short random letters and numbers. Good hash functions rarely conflict with hash columns in the input domain. In the case of hash and data processing, conflicts are not allowed to distinguish data, which makes it more difficult to locate database records.
  13. Heap sorting
    HeapsortIs to useStacked tree(Heap) This data structure is designed as a sort algorithm. Accumulation tree is an approximationFull Binary TreeAnd meetStacked attributes: The key value or index of a child node is always smaller than or greater than its parent node.
  14. Merge Sorting
    Merge sortIs an effective method based on the merge operation.SortAlgorithm. This algorithm usesDivide and conquer Law(Divide and conquer) is a very typical application.
  15. Ransac Algorithm
    Ransac is short for "random sample consensus. This algorithm is an iterative method used to estimate mathematical model parameters from a group of observations. It is proposed by Fischler and bolles in 1981. It is a non-deterministic algorithm, because it can only get reasonable results with a certain probability, this probability increases with the increase of the number of iterations. The basic assumption of this algorithm is that "inliers" (points that support model parameter estimation) and "Outliers" exist in the observation data set ), in addition, this group of observed data is affected by noise. Ransac assumes that given a set of "inliers" data, it can obtain the optimal model that conforms to this set of points.
  16. RSA Encryption Algorithm
    This is a public key encryption algorithm and the world's first algorithm suitable for signature. Today, RSA has expired its patents and is widely used in e-commerce encryption. We all believe that this algorithm will be secure as long as the key is long enough.
  17. Query Union-find
    The query set is a tree-type data structure used to deal with the merge and query problems of some disjoint sets. Forest is often used.
  18. Viterbi Algorithm
    Find the most likely sequence of hidden states (finding most probable sequence of hidden states)

Appendix

    • For more information about the algorithms in the world, see this web page of Wikipedia:Http://en.wikipedia.org/wiki/List_of_algorithms
    • For sorting algorithms, you can refer to these articles on this site 《A Python script that displays the sorting processAndA website comparing sorting algorithms"

.

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.