From Wikipedia, the free encyclopedia
An algorithm is fundamentally a set of rules or defined procedures that is typically designed and used to solve a specific problem or a broad set of problems.
Broadly, algorithms define process(es), sets of rules, or methodologies that are to be followed 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.[1]
The following is a list of well-known algorithms.
Combinatorial algorithms
[edit]
General combinatorial algorithms
[edit]
Sequence algorithms
[edit]
Approximate sequence matching
[edit]
- Bitap algorithm: fuzzy algorithm that determines if strings are approximately equal.
- Phonetic algorithms
- String metrics: computes a similarity or dissimilarity (distance) score between two pairs of text strings
- Trigram search: search for text when the exact syntax or spelling of the target object is not precisely known
Selection algorithms
[edit]
Sequence permutations
[edit]
Sequence combinations
[edit]
- Exchange sorts
- Bubble sort: for each pair of indices, swap the items if out of order
- Cocktail shaker sort or bidirectional bubble sort, a bubble sort traversing the list alternately from front to back and back to front
- Comb sort
- Gnome sort
- Odd–even sort
- Quicksort: divide list into two, with all items on the first list coming before all items on the second list.; then sort the two lists. Often the method of choice
- Humorous or ineffective
- Hybrid
- Flashsort
- Introsort: begin with quicksort and switch to heapsort when the recursion depth exceeds a certain level
- Timsort: adaptative algorithm derived from merge sort and insertion sort. Used in Python 2.3 and up, and Java SE 7.
- Insertion sorts
- Merge sorts
- Non-comparison sorts
- Selection sorts
- Heapsort: convert the list into a heap, keep removing the largest element from the heap and adding it to the end of the list
- Selection sort: pick the smallest of the remaining elements, add it to the end of the sorted list
- Smoothsort
- Other
- Unknown class
Computational mathematics
[edit]
See also: Combinatorial algorithms and Computational science
Number theoretic algorithms
[edit]
Numerical algorithms
[edit]
Differential equation solving
[edit]
Elementary and special functions
[edit]
Interpolation and extrapolation
[edit]
Numerical integration
[edit]
Optimization algorithms
[edit]
Hybrid Algorithms
Computational science
[edit]
See also: Sequence alignment algorithms
- 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]
- Tomasulo algorithm: allows sequential instructions that would normally be stalled due to certain dependencies to execute non-sequentially
- Binary space partitioning
- Clipping
- Contour lines and Isosurfaces
- Discrete Green's theorem: is an algorithm for computing double integral over a generalized rectangular domain in constant time. It is a natural extension to the summed area table algorithm
- Flood fill: fills a connected region of a multi-dimensional array with a specified symbol
- Global illumination algorithms: Considers direct illumination and reflection from other objects.
- Hidden-surface removal or visual surface determination
- Line drawing: graphical algorithm for approximating a line segment on discrete graphical media.
- Midpoint circle algorithm: an algorithm used to determine the points needed for drawing a circle
- Ramer–Douglas–Peucker algorithm: Given a 'curve' composed of line segments to find a curve not too dissimilar but that has fewer points
- Shading
- Gouraud shading: an algorithm to simulate the differing effects of light and colour across the surface of an object in 3D computer graphics
- Phong shading: an algorithm to interpolate surface normal-vectors for surface shading in 3D computer graphics
- Slerp (spherical linear interpolation): quaternion interpolation for the purpose of animating 3D rotation
- Summed area table (also known as an integral image): an algorithm for computing the sum of values in a rectangular subset of a grid in constant time
- 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]
Programming language theory
[edit]
Theory of computation and automata
[edit]
Error detection and correction
[edit]
Lossless compression algorithms
[edit]
Lossy compression algorithms
[edit]
Digital signal processing
[edit]
Software engineering
[edit]
Database algorithms
[edit]
Distributed systems algorithms
[edit]
Memory allocation and deallocation algorithms
[edit]
Operating systems algorithms
[edit]
Process synchronization
[edit]