An algorithm is a fundamental set of rules or defined procedures that are typically designed and used to be a simpler way to solve a specific problem or a broad set of problems.
Simply speaking, algorithms define different processes, sets of rules and regulations, or methodologies that are to be followed through in calculations, data processing, data mining, pattern recognition, automated reasoning or other problem-solving operations. With the increasing automation of services, more and more decisions are being made by algorithms. Some general examples are risk assessments, anticipatory policing, and pattern recognition technology.
The following is a list of well-known algorithms.
General combinatorial algorithms
edit
- Brent's algorithm: finds a cycle in function value iterations using only two iterators
- Floyd's cycle-finding algorithm: finds a cycle in function value iterations
- Gale–Shapley algorithm: solves the stable matching problem
- Pseudorandom number generators (uniformly distributed—see also List of pseudorandom number generators for other PRNGs with varying degrees of convergence and varying statistical quality):
Sequence combinations
edit
Computational mathematics
edit
Number theoretic algorithms
edit
Elementary and special functions
edit
Optimization algorithms
edit
- Geohash: a public domain algorithm that encodes a decimal latitude/longitude pair as a hash string
- Vincenty's formulae: a fast algorithm to calculate the distance between two latitude/longitude points on an ellipsoid
Computer architecture
edit
- Asymmetric (public key) encryption:
- Digital signatures (asymmetric authentication):
- Cryptographic hash functions (see also the section on message authentication codes):
- BLAKE
- MD5 – Note that there is now a method of generating collisions for MD5
- RIPEMD-160
- SHA-1 – Note that there is now a method of generating collisions for SHA-1
- SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
- SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256)
- Tiger (TTH), usually used in Tiger tree hashes
- WHIRLPOOL
- Cryptographically secure pseudo-random number generators
- Key exchange
- Key derivation functions, often used for password hashing and key stretching
- Message authentication codes (symmetric authentication algorithms, which take a key as a parameter):
- Secret sharing, secret splitting, key splitting, M of N algorithms
- Symmetric (secret key) encryption:
- Post-quantum cryptography
- Proof-of-work algorithms
Machine learning and statistical classification
edit
- Inside-outside algorithm: an O(n) algorithm for re-estimating production probabilities in probabilistic context-free grammars
- Lexical analysis
- LL parser: a relatively simple linear time parsing algorithm for a limited class of context-free grammars
- LR parser: A more complex linear time parsing algorithm for a larger class of context-free grammars. Variants:
- Packrat parser: a linear time parsing algorithm supporting some context-free grammars and parsing expression grammars
- Pratt parser
- Recursive descent parser: a top-down parser suitable for LL(k) grammars
- Shunting-yard algorithm: converts an infix-notation math expression to postfix
Information theory and signal processing
edit
Lossless compression algorithms
edit
Distributed systems algorithms
edit
| [</span>icon<span typeof=\"mw:Entity\" id=\"mwCdA\">]</span>","txt":"[icon]"}]]}'> | |