Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
List of algorithms
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Computer science== {{further|Computer science}} ===Computer architecture=== {{further|Computer architecture}} * [[Tomasulo algorithm]]: allows sequential instructions that would normally be stalled due to certain dependencies to execute non-sequentially ===Computer graphics=== {{further|Computer graphics}} * [[Clipping (computer graphics)|Clipping]] ** [[Line clipping]] *** [[CohenâSutherland]] *** [[CyrusâBeck]] *** [[Fast clipping|Fast-clipping]] *** [[LiangâBarsky algorithm|LiangâBarsky]] *** [[NichollâLeeâNicholl]] ** Polygon clipping *** [[SutherlandâHodgman]] *** [[Vatti clipping algorithm|Vatti]] *** [[WeilerâAtherton]] * [[Contour line]]s and [[Isosurface]]s ** [[Marching cubes]]: extract a polygonal mesh of an isosurface from a three-dimensional scalar field (sometimes called voxels) ** [[Marching squares]]: generates contour lines for a two-dimensional scalar field ** [[Marching tetrahedrons]]: an alternative to [[Marching cubes]] * [[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. ** [[Ambient occlusion]] ** [[Beam tracing]] ** [[Cone tracing]] ** [[Image-based lighting]] ** [[Metropolis light transport]] ** [[Path tracing]] ** [[Photon mapping]] ** [[Radiosity (3D computer graphics)|Radiosity]] ** [[Ray tracing (graphics)|Ray tracing]] * [[Hidden-surface determination|Hidden-surface removal]] or visual surface determination ** [[Newell's algorithm]]: eliminate polygon cycles in the depth sorting required in hidden-surface removal ** [[Painter's algorithm]]: detects visible parts of a 3-dimensional scenery ** [[Scanline rendering]]: constructs an image by moving an imaginary line over the image ** [[Warnock algorithm]] * [[Line drawing algorithm|Line drawing]]: graphical algorithm for approximating a line segment on discrete graphical media. ** [[Bresenham's line algorithm]]: plots points of a 2-dimensional array to form a straight line between 2 specified points (uses decision variables) ** [[Digital differential analyzer (graphics algorithm)|DDA line algorithm]]: plots points of a 2-dimensional array to form a straight line between specified points ** [[Xiaolin Wu's line algorithm]]: algorithm for line antialiasing. * [[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 * [[Binary space partitioning]] ===Cryptography=== {{further|Cryptography|Topics in cryptography}} * [[Asymmetric key algorithm|Asymmetric (public key) encryption]]: ** [[ElGamal encryption|ElGamal]] ** [[Elliptic curve cryptography]] ** [[Matei Array Encreption 1|MAE1]] ** [[NTRUEncrypt]] ** [[RSA (cryptosystem)|RSA]] * [[Digital signature]]s (asymmetric authentication): ** [[Digital Signature Algorithm|DSA]], and its variants: *** [[ECDSA]] and Deterministic ECDSA *** [[EdDSA]] (Ed25519) ** [[RSA (cryptosystem)|RSA]] * [[Cryptographic hash function]]s (see also the section on message authentication codes): ** [[BLAKE (hash function)|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 (hash function)|Tiger]] (TTH), usually used in [[Hash tree (persistent data structure)|Tiger tree hashes]] ** [[WHIRLPOOL]] * [[Cryptographically secure pseudo-random number generator]]s ** [[Blum Blum Shub]] â based on the hardness of [[integer factorization|factorization]] ** [[Fortuna (PRNG)|Fortuna]], intended as an improvement on [[Yarrow algorithm]] ** [[Linear-feedback shift register]] (note: many LFSR-based algorithms are weak or have been broken) ** [[Yarrow algorithm]] * [[Key exchange]] ** [[DiffieâHellman key exchange]] ** [[Elliptic-curve DiffieâHellman]] (ECDH) * [[Key derivation function]]s, often used for [[password hashing]] and [[key stretching]] ** [[bcrypt]] ** [[PBKDF2]] ** [[scrypt]] ** [[Argon2]] * [[Message authentication code]]s (symmetric authentication algorithms, which take a key as a parameter): ** [[keyed-hash message authentication code|HMAC]]: keyed-hash message authentication ** [[Poly1305]] ** [[SipHash]] * [[Secret sharing]], secret splitting, key splitting, M of N algorithms ** Blakey's scheme ** [[Shamir's secret sharing]] * [[Symmetric key algorithm|Symmetric (secret key) encryption]]: ** [[Advanced Encryption Standard]] (AES), winner of [[NIST]] competition, also known as [[Rijndael]] ** [[Blowfish (cipher)|Blowfish]] ** [[Twofish]] ** [[Threefish]] ** [[Data Encryption Standard]] (DES), sometimes DE Algorithm, winner of NBS selection competition, replaced by AES for most purposes ** [[International Data Encryption Algorithm|IDEA]] ** [[RC4 (cipher)]] ** [[Tiny Encryption Algorithm]] (TEA) ** [[Salsa20]], and its updated variant [[Salsa20#ChaCha variant|ChaCha20]] * [[Post-quantum cryptography]] * [[Proof-of-work system|Proof-of-work algorithms]] ===Digital logic=== * Boolean minimization ** [[QuineâMcCluskey algorithm]]: also called as Q-M algorithm, programmable method for simplifying the Boolean equations ** [[Petrick's method]]: another algorithm for Boolean simplification ** [[Espresso heuristic logic minimizer]]: a fast algorithm for Boolean function minimization ===Machine learning and statistical classification=== {{main|List of machine learning algorithms}} {{further|Machine learning|Statistical classification}} * [[AlmeidaâPineda recurrent backpropagation]]: Adjust a matrix of synaptic weights to generate desired outputs given its inputs * [[ALOPEX]]: a correlation-based [[Machine learning|machine-learning algorithm]] * [[Association rule learning]]: discover interesting relations between variables, used in [[data mining]] ** [[Apriori algorithm]] ** [[Eclat algorithm]] ** [[Association rule learning#FP-growth algorithm|FP-growth algorithm]] ** [[One-attribute rule]] ** [[Association rule learning#Zero-attribute rule|Zero-attribute rule]] * [[Boosting (meta-algorithm)]]: Use many weak learners to boost effectiveness ** [[AdaBoost]]: adaptive boosting ** [[BrownBoost]]: a boosting algorithm that may be robust to noisy datasets ** [[LogitBoost]]: [[logistic regression]] boosting ** [[LPBoost]]: [[linear programming]] boosting * [[Bootstrap aggregating]] (bagging): technique to improve stability and classification accuracy * [[Computer Vision]] ** [[Grabcut]] based on [[Graph cuts in computer vision|Graph cuts]] * [[Decision tree learning|Decision Trees]] ** [[C4.5 algorithm]]: an extension to ID3 ** [[ID3 algorithm]] (Iterative Dichotomiser 3): use heuristic to generate small decision trees * [[Cluster analysis|Clustering]]: a class of [[unsupervised learning]] algorithms for grouping and bucketing related input vector * [[k-nearest neighbors]] (k-NN): a non-parametric method for classifying objects based on closest training examples in the [[feature space]] * [[LindeâBuzoâGray algorithm]]: a vector quantization algorithm used to derive a good codebook * [[Locality-sensitive hashing]] (LSH): a method of performing probabilistic dimension reduction of high-dimensional data * [[Artificial neural network|Neural Network]] ** [[Backpropagation]]: a [[supervised learning]] method which requires a teacher that knows, or can calculate, the desired output for any given input ** [[Hopfield net]]: a [[Recurrent neural network]] in which all connections are symmetric ** [[Perceptron]]: the simplest kind of feedforward neural network: a [[linear classifier]]. ** [[Pulse-coupled neural networks]] (PCNN): [[Artificial neural network|Neural models]] proposed by modeling a cat's [[visual cortex]] and developed for high-performance [[Bionics|biomimetic]] image processing. ** [[Radial basis function network]]: an artificial neural network that uses radial [[basis function]]s as activation functions ** [[Self-organizing map]]: an unsupervised network that produces a low-dimensional representation of the input space of the training samples * [[Random forest]]: classify using many decision trees * [[Reinforcement learning]]: ** [[Q-learning]]: learns an action-value function that gives the expected utility of taking a given action in a given state and following a fixed policy thereafter ** [[Stateâactionârewardâstateâaction|StateâActionâRewardâStateâAction]] (SARSA): learn a [[Markov decision process]] policy ** [[Temporal difference learning]] * [[relevance vector machine|Relevance-Vector Machine]] (RVM): similar to SVM, but provides probabilistic classification * [[Supervised learning]]: Learning by examples (labelled data-set split into training-set and test-set) * [[Support vector machine|Support Vector Machine]] (SVM): a set of methods which divide multidimensional data by finding a dividing hyperplane with the maximum margin between the two sets ** [[Structured SVM]]: allows training of a classifier for general structured output labels. * [[Winnow algorithm]]: related to the perceptron, but uses a [[Multiplicative Weight Update Method|multiplicative weight-update scheme]] ===Programming language theory=== {{further|Programming language theory}} * [[C3 linearization]]: an algorithm used primarily to obtain a consistent linearization of a multiple inheritance hierarchy in object-oriented programming * [[Chaitin's algorithm]]: a bottom-up, graph coloring register allocation algorithm that uses cost/degree as its spill metric * [[Hindley-Milner type inference|HindleyâMilner type inference algorithm]] * [[Rete algorithm]]: an efficient pattern matching algorithm for implementing [[Start symbol (formal languages)|production rule]] systems * [[Sethi-Ullman algorithm]]: generates optimal code for arithmetic expressions ====Parsing==== {{further|Parsing}} * [[CYK algorithm]]: an O(n<sup>3</sup>) algorithm for parsing [[context-free grammar]]s in [[Chomsky normal form]] * [[Earley parser]]: another O(n<sup>3</sup>) algorithm for parsing any [[context-free grammar]] * [[GLR parser]]: an algorithm for parsing any [[context-free grammar]] by [[Masaru Tomita]]. It is tuned for deterministic grammars, on which it performs almost [[linear time]] and O(n<sup>3</sup>) in worst case. * [[Inside-outside algorithm]]: an O(n<sup>3</sup>) algorithm for re-estimating production probabilities in [[probabilistic context-free grammar]]s * [[LL parser]]: a relatively simple [[linear time]] parsing algorithm for a limited class of [[context-free grammar]]s * [[LR parser]]: A more complex [[linear time]] parsing algorithm for a larger class of [[context-free grammar]]s. Variants: ** [[Canonical LR parser]] ** [[Look-ahead LR parser|LALR (look-ahead LR) parser]] ** [[Operator-precedence parser]] ** [[Simple LR parser|SLR (Simple LR) parser]] ** [[Simple precedence parser]] * [[Packrat parser]]: a [[linear time]] parsing algorithm supporting some [[context-free grammar]]s and [[parsing expression grammar]]s * [[Recursive descent parser]]: a [[top-down parsing|top-down parser]] suitable for LL(''k'') grammars * [[Shunting-yard algorithm]]: converts an infix-notation math expression to postfix * [[Pratt parser]] * [[Lexical analysis]] ===Quantum algorithms=== {{further|Quantum algorithm}} * [[DeutschâJozsa algorithm]]: criterion of balance for Boolean function * [[Grover's algorithm]]: provides quadratic speedup for many search problems * [[Shor's algorithm]]: provides [[exponential function|exponential]] speedup (relative to currently known non-quantum algorithms) for factoring a number * [[Simon's algorithm]]: provides a provably [[exponential function|exponential]] speedup (relative to any non-quantum algorithm) for a black-box problem ===Theory of computation and automata=== {{further|Theory of computation}} * [[DFA minimization#Hopcroft's algorithm|Hopcroft's algorithm]], [[DFA minimization#Moore's algorithm|Moore's algorithm]], and [[DFA minimization#Brzozowski's algorithm|Brzozowski's algorithm]]: algorithms for [[DFA minimization|minimizing the number of states in a deterministic finite automaton]] * [[Powerset construction]]: algorithm to convert nondeterministic automaton to [[deterministic automaton]]. * [[TarskiâKuratowski algorithm]]: a [[non-deterministic algorithm]] which provides an upper bound for the complexity of formulas in the [[arithmetical hierarchy]] and [[analytical hierarchy]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)