कलन-विधियों की सूची



संचय-सम्बन्धी कलन-विधियाँ (Combinatorial algorithms)

सामान्य संचयविन्यास (combinatorial) से सम्बन्धित कलनविधियाँ

 Brent's algorithm: finds cycles in iterations using only two iterators
 Floyd's cycle-finding algorithm: finds cycles in iterations
 Pseudorandom number generators (uniformly distributed):
 Blum Blum Shub
 Mersenne twister
 Linear congruential generator
 Lagged Fibonacci generator
 Robinson-Schensted algorithm: generates permutations from pairs of Young tableaux

आरेख-सम्बन्धी कलन-विधियाँ (Graph algorithms) 
 Bellman-Ford algorithm: computes shortest paths in a weighted graph (where some of the edge weights may be negative)
 Dijkstra's algorithm: computes shortest paths in a graph with non-negative edge weights
 Perturbation methods: an algorithm that computes a locally shortest paths in a graph
 Floyd-Warshall algorithm: solves the all pairs shortest path problem in a weighted, directed graph
 Johnson algorithm: All pairs shortest path algorithm in sparse weighted directed graph
 Kruskal's algorithm: finds a minimum spanning tree for a graph
 Prim's algorithm: finds a minimum spanning tree for a graph
 Boruvka's algorithm: finds a minimum spanning tree for a graph
 Ford-Fulkerson algorithm: computes the maximum flow in a graph
 Edmonds-Karp algorithm: implementation of Ford-Fulkerson
 Nonblocking Minimal Spanning Switch say, for a telephone exchange
 Spring based algorithm: algorithm for graph drawing
 Topological sort: finds linear order of nodes(e.g. jobs) based on their dependencies.
 Hungarian algorithm: algorithm for finding a perfect matching
 Coloring algorithm: Graph coloring algorithm.
 Nearest neighbour algorithm.

खोज सम्बन्धी कलन-विधियाँ (Search algorithms) 
 Linear search: finds an item in an unsorted list
 Selection algorithm: finds the kth largest item in a list
 Binary search algorithm: locates an item in a sorted list
 Binary search tree: uses binary tree to maintain elements.
 Breadth-first search: traverses a graph level by level
 Depth-first search: traverses a graph branch by branch
 Best-first search: traverses a graph in the order of likely importance using a priority queue
 A* tree search: special case of best-first search that uses heuristics to improve speed
 Uniform-cost search: a tree search that finds the lowest cost route where costs vary
 Predictive search: binary like search which factors in magnitude of search term versus the high and low values in the search. Sometimes called dictionary search or interpolated search.
 Hash table: finds an item in an unsorted collection in O(1) time.
 Crazy Turtle Puzzle algorithm

अक्षर-समूह सम्ब्नधी अल्गोरिद्म (String algorithms)

Searching 
 Aho-Corasick algorithm: trie based algorithm for finding all matches in dictionary.
 Bitap algorithm: fuzzy algorithm that determines strings are approximately equal.
 Boyer-Moore string search algorithm: amortised linear (sublinear in most times) algorithm
 Knuth-Morris-Pratt algorithm: bypasses reexamination of matched characters
 Rabin-Karp string search algorithm: searches multiple patterns efficiently
 Longest common subsequence problem: Haskell's dynamic programming algorithm
 Longest increasing subsequence problem
 Shortest common supersequence problem
 longest common substring problem
 Kadane's algorithm: finds maximum sub-array of any size
 Boyer-Moore-Horspool algorithm

Approximate matching 
 Hirschberg's algorithm: space efficient algorithm for computing edit distance
 Levenshtein edit distance
 Metaphone: an algorithm for indexing words by their sound, when pronounced in English
 Needleman-Wunsch algorithm
 NYSIIS: phonetic algorithm
 Smith-Waterman algorithm
 Soundex

Sorting algorithms 
 Binary tree sort
 Bitonic sorter
 Bogosort
 Bubble sort: for each pair of indices, swap the items if out of order
 Bucket sort
 Burstsort
 Cocktail sort
 Comb sort
 Counting sort
 Gnome sort
 Flashsort
 Heapsort: convert the list into a heap, keep removing the largest element from the heap and adding it to the end of the list
 Insertion sort: determine where the current item belongs in the list of sorted ones, and insert it there
 Library sort
 Merge sort: sort the first and second half of the list separately, then merge the sorted lists
 Odd-even sort
 Pancake sorting
 Patience sorting
 Pigeonhole 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
 Radix sort: sorts strings letter by letter
 Selection sort: pick the smallest of the remaining elements, add it to the end of the sorted list
 Shell sort: an attempt to improve insertion sort
 Smoothsort
 Stooge sort
 Strand sort
 Topological sort
 Tree sort
 Walia sort

Merge algorithms 
 Simple Merge algorithm
 k-way Merge algorithm

डेटा घनन की कलन-विधियाँ (Data Compression algorithms)

Lossless compression algorithms 

 Burrows-Wheeler transform: preprocessing useful for improving lossless compression
 DEFLATE: lossless data compression
 Delta encoding: aid to compression of data in which sequential data occurs frequently
 Dynamic Markov Compression: Compression using predictive arithmetic coding
 Incremental encoding: delta encoding applied to sequences of strings
 LZW: lossless data compression (Lempel-Ziv-Welch)
 LZ77 (algorithm): LZ77 and LZ78 are the names for the two lossless data compression algorithms
 LZMA: short for Lempel-Ziv-Markov chain-Algorithm
 LZO: data compression algorithm that is focused on speed
 PPM compression algorithm
 Shannon-Fano coding
 Truncated binary encoding
 Run-length encoding: lossless data compression taking advantage of strings of repeated characters
 SEQUITUR algorithm: lossless compression by incremental grammar inference on a string
 EZW (Embedded Zerotree Wavelet)
 Entropy encoding: coding scheme that assigns codes to symbols so as to match code lengths with the probabilities of the symbols
 Huffman coding: simple lossless compression taking advantage of relative character frequencies
 Adaptive Huffman coding: adaptive coding technique based on Huffman coding
 Package-Merge: Optimizes Huffman coding subject to a length restriction on code strings
 Arithmetic coding: advanced entropy coding
 Range encoding: same as arithmetic coding, but looked at in a slightly different way
 Entropy coding with known entropy characteristics
 Unary coding: code that represents a number n with n ones followed by a zero
 Elias delta|gamma|omega coding: universal code encoding the positive integers
 Fibonacci coding: universal code which encodes positive integers into binary code words
 Golomb coding: form of entropy coding that is optimal for alphabets following geometric distributions
 Rice coding: form of entropy coding that is optimal for alphabets following geometric distributions

Lossy compression algorithms 
 Linear predictive coding: lossy compression by representing the spectral envelope of a digital signal of speech in compressed form
 A-law algorithm: standard companding algorithm
 Mu-law algorithm: standard analog signal compression or companding algorithm
 Fractal compression: method used to compress images using fractals
 Transform coding: type of data compression for "natural" data like audio signals or photographic images
 Vector quantization: technique often used in lossy data compression
 Wavelet compression: form of data compression well suited for image compression (sometimes also video compression and audio compression)

गणनात्मक ज्यामिति (Computational geometry) 
 Euclidean Distance Transform - Computes the distance between every point in a grid and a discrete collection of points.
 Fortune's Algorithm: a well-known and simple-to-understand algorithm for computing Voronoi diagrams from a set of sites
 Collision detection algorithms: check for the collision or intersection of two given solids
 Convex hull algorithms: determining the convex hull of a set of points
 Chan's algorithm
 Gift wrapping algorithm or Jarvis march
 Graham scan
 Kirkpatrick–Seidel algorithm
 Gilbert-Johnson-Keerthi distance algorithm: determining the smallest distance between two convex shapes.
 Line segment intersection: finding whether lines intersect, usually with a sweep line algorithm
 Bentley-Ottmann algorithm
 Shamos-Hoey algorithm
 Point in polygon algorithms: tests whether a given point lies within a given polygon
 Polygon triangulation algorithms: decompose a polygon into a set of triangles

कम्प्यूटर ग्राफिक्स (Computer graphics) 
 Bresenham's line algorithm: plots points of a 2-dimensional array to form a straight line between 2 specified points (uses decision variables)
 Line drawing algorithm: graphical algorithm for approximating a line segment on discrete graphical media.
 DDA line algorithm: plots points of a 2-dimensional array to form a straight line between 2 specified points (uses floating-point math)
 Flood fill: fills a connected region of a multi-dimensional array with a specified symbol
 Xiaolin Wu's line algorithm: algorithm for line antialiasing.
 Painter's algorithm: detects visible parts of a 3-dimensional scenery
 Ray tracing (graphics): realistic image rendering
 Phong shading: an illumination model and an interpolation method in 3D computer graphics
 Gouraud shading: an algorithm to simulate the differing effects of light and colour across the surface of an object in 3D computer graphics
 Scanline rendering: constructs an image by moving an imaginary line over the image
 Global illumination algorithms: Considers direct illumination and reflection from other objects.
 Interpolation: Constructing new data points such as in digital zoom.
 Ramer-Douglas-Peucker algorithm: Given a 'curve' composed of line segments to find a curve not too dissimilar but that has fewer points
 Spline interpolation: Reduces error with Runge's phenomenon.

कम्प्यूटर दृष्टि (Computer vision) 
 In image processing, epitomic analysis can be used to represent an image or video by a smaller image or video which preserves its statistical properties.

 Counting objects in an image: Counts the number of objects in a binary image. Uses the connected-component labeling algorithm to first label each object. Then returns the number of labeled objects.

 SIFT (Scale-invariant feature transform): is an algorithm to detect and describe local features in images.

बीज-लेखन के अल्गोरिद्म (Cryptographic algorithms) 

 Symmetric (secret key) encryption:
 Advanced Encryption Standard (AES), winner of NIST competition, also known as Rijndael
 Blowfish
 Data Encryption Standard (DES), sometimes DE Algorithm, winner of NBS selection competition, replaced by AES for most purposes
 IDEA
 RC4 (cipher)
 Tiny Encryption Algorithm
 Asymmetric (public key) encryption:
 DSA
 ElGamal
 RSA
 NTRUEncrypt
 Cryptographic Message digest functions (hashing functions):
 MD5 – Note that there is now a method of generating collisions for MD5
 RIPEMD-160
 SHA-1
 HMAC: keyed-hash message authentication
 Tiger (TTH), usually used in Tiger tree hashes
 Cryptographically secure pseudo-random number generators
 Blum Blum Shub - based on the hardness of factorization
 Yarrow algorithm
 Fortuna, intended as an improvement on Yarrow algorithm
 Linear feedback shift register
 Secret sharing, Secret Splitting, Key Splitting, M of N algorithms
 Shamir's Scheme
 Blakey's Scheme
 Key exchange
 Diffie-Hellman key exchange

आंकिक संकेत प्रसंस्करण (Digital signal processing) 
 CORDIC: Fast trigonometric function computation technique.
 Rainflow-counting algorithm: Reduces a complex stress history to a count of elementary stress-reversals for use in fatigue analysis
 Osem: algorithm for processing of medical images
 Goertzel algorithm Can be used for DTMF digit decoding.
 Discrete Fourier transform: determines the frequencies contained in a (segment of a) signal
 Fast Fourier transform
 Cooley-Tukey FFT algorithm
 Rader's FFT algorithm
 Bluestein's FFT algorithm
 Bruun's FFT algorithm
 Prime-factor FFT algorithm
 Richardson-Lucy deconvolution: image de-blurring algorithm
 Elser Difference-Map Algorithm: X-Ray diffraction microscopy

सॉफ्टवेयर प्रौद्योगिकी (Software engineering) 
 Algorithms for Recovery and Isolation Exploiting Semantics: recovery
 Unicode Collation Algorithm
 CHS conversion: converting between disk addressing systems
 Cyclic redundancy check: calculation of a check word
 Parity: simple/fast error detection technique
 Rayrole's algorithm: resource calendar management

वितरित प्रणालियों के लिये कलन-विधियाँ (Distributed systems algorithms) 
 Lamport ordering: a partial ordering of events based on the happened-before relation
 Snapshot algorithm: a snapshot is the process of recording the global state of a system
 Vector clocks: a total ordering of events
 Marzullo's algorithm: distributed clock synchronization
 intersection algorithm: another clock agreement algorithm.
 Byzantine fault tolerance: good fault tolerance.

Memory Allocation and deallocation algorithms 
 Boehm garbage collector: Conservative garbage collector
 Buddy memory allocation: Algorithm to allocate memory such that fragmentation is less.
 Cheney's algorithm An improvement on the Semi-space collector
 Generational garbage collector: Fast garbage collectors that segregate memory by age
 Mark and sweep
 Reference counting
 Semi-space collector An early copying collector

Operating systems algorithms 
 Banker's algorithm: Algorithm used for deadlock avoidance.
 Page replacement algorithms: Selecting the victim page under low memory conditions.
 Bully algorithm: Selecting new leader among many computers.

Disk scheduling algorithms: 
 Elevator algorithm: Disk scheduling algorithm that works like an elevator.
 Shortest seek first: Disk scheduling algorithm to reduce seek time.

Process synchronisation algorithms: 
 Peterson's algorithm
 Lamport's Bakery algorithm
 Dekker's algorithm

Scheduling algorithms 
 Rate-monotonic scheduling
 Earliest deadline first scheduling
 Fair-share scheduling
 Round-robin scheduling
 Multi level feedback queue
 shortest job next
 shortest remaining time
 Least slack time scheduling
 List scheduling

एलेक्ट्रानिकी एवं हार्डवेयर सम्बन्धी अल्गोरिद्म 
 Quine-McCluskey algorithm: Also called as Q-M algorithm, programmable method for simplyfying the boolean equations.
 Petrick's method: Another algorithm for boolean simplification.
 Espresso heuristic logic minimization: Fast algorithm for boolean function minimization.

मशीन शिक्षा के अल्गोरिद्म (Machine learning algorithms) 
 Support Vector Macting

चिकित्सा सम्बन्धी अल्गोरिद्म 
 Medical algorithm
 Texas Medication Algorithm Project

न्यूरल नेटवर्क (Neural networks) 
 Hopfield net
 Backpropagation
 Self-organizing map

जेनेटिक अल्गोरिद्मँ 
 Fitness proportionate selection - also known as roulette-wheel selection
 Truncation selection
 Tournament selection
 Stochastic universal sampling

संख्यात्म बीजगणित (Numerical algebra) 
 Buchberger's algorithm: finds a Gröbner basis
 Eigenvalue algorithm
 Exponentiating by squaring: quickly computes powers of numbers and matrices
 Gram-Schmidt process: orthogonalizes a set of vectors
 Knuth-Bendix completion algorithm: for rewriting rule systems
 Multivariate division algorithm: for polynomials in several indeterminates

संख्या सिद्धान्त सम्बन्धी कलन-विधियाँ 
 Discrete logarithm:
 Baby-step giant-step
 Pollard's rho algorithm for logarithms
 Pohlig-Hellman algorithm
 Index calculus algorithm
 Euclidean algorithm: computes the greatest common divisor
 Extended Euclidean algorithm: Also solves the equation ax+by = c.
 Binary gcd algorithm: Efficient way of calculating gcd.
 Integer factorization: breaking an integer into its prime factors
 prime factorization algorithm
 Fermat's factorization method
 Trial division
 Lenstra elliptic curve factorization
 Pollard's rho algorithm
 Pollard's p − 1 algorithm
 Congruence of squares
 Quadratic sieve
 Dixon's algorithm
 Special number field sieve
 General number field sieve
 Multiplication algorithms: fast multiplication of two numbers
 Booth's multiplication algorithm
 Primality tests: determining whether a given number is prime
 AKS primality test
 Miller-Rabin primality test
 Sieve of Eratosthenes
 Sieve of Atkin
 Odlyzko-Schönhage algorithm: calculates nontrivial zeroes of the Riemann zeta function

संख्यात्मक कलन-विधियाँ (Numerical algorithms) 
 Approximate counting algorithm: Allows counting large number of events in a small register
 Biconjugate gradient method: solves systems of linear equations
 Borwein's algorithm: an algorithm to calculate the value of 1/π
 Dancing Links: finds all solutions to the exact cover problem
 De Boor algorithm: computes splines
 De Casteljau's algorithm: computes Bézier curves
 False position method: approximates roots of a function
 Gauss–Jordan elimination: solves systems of linear equations
 Gauss–Seidel method: solves systems of linear equations iteratively
 Gauss–Legendre algorithm: computes the digits of pi
 Kahan summation algorithm: a more accurate method of summing floating-point numbers
 Levinson recursion: solves equation involving a Toeplitz matrix
 Metropolis–Hastings algorithm: used to generate a sequence of samples from the probability distribution of one or more variables
 MISER algorithm: Monte Carlo simulation, numerical integration
 Newton's method: finds zeros of functions with calculus
 Risch algorithm: Translates indefinite integral to algebraic problem
 Rounding functions: the classic ways to round numbers
 Secant method: approximates roots of a function
 Shifting nth-root algorithm: digit by digit root extraction
 Square root: approximates the square root of a number
 Strassen algorithm: faster matrix multiplication
 Symbolic Cholesky decomposition: Efficient way of storing sparse matrix
 Tridiagonal matrix algorithm (Thomas algorithm): solves systems of tridiagonal equations

अभीष्टप्राप्ति के अल्गोरिद्म (Optimization algorithms) 
 Ant colony optimization
 BFGS method: A nonlinear optimization algorithm
 Branch and bound
 Chain matrix multiplication
 Conjugate gradient
 Differential evolution
 Evolution strategy
 Gauss–Newton algorithm: An algorithm for solving nonlinear least squares problems.
 Genetic algorithms
 Gradient descent
 Interior point method
 Karmarkar's algorithm: The first reasonably efficient algorithm that solves the linear programming problem in polynomial time.
 Levenberg–Marquardt algorithm: An algorithm for solving nonlinear least squares problems.
 Line search
 Local search
 Nelder-Mead method (downhill simplex method): A nonlinear optimization algorithm.
 Newton's method in optimization
 Particle swarm
 Random-restart hill climbing
 Simplex algorithm: An algorithm for solving the linear programming problem
 Simulated annealing
 Stochastic tunneling
 Subset sum algorithm
 Tabu search
 Minimax used in game programming
 Alpha-beta pruning: search to reduce number of nodes in minimax algorithm

पार्जिंग (Parsing) 
 Recursive descent parser: A top-down parser suitable for LL(k) grammars
 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:
 Operator-precedence parser
 SLR (Simple LR) parser
 LALR (Look-ahead LR) parser
 Canonical LR parser
 Packrat parser: A linear time parsing algorithm supporting some context-free grammars and parsing expression grammars
 CYK algorithm: An O(n3) algorithm for parsing any context-free grammar
 Earley parser: Another O(n3) 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(n3) in worst case.
 Inside-outside algorithm: An O(n3) algorithm for re-estimating production probabilities in probabilistic context-free grammars

क्वांटम अल्गोरिद्म (Quantum algorithms) 
Application of quantum computation to various categories of problems and algorithms

 Grover's algorithm: provides quadratic speedup for many search problems
 Shor's algorithm: provides exponential speedup for factoring a number
 Deutsch-Jozsa algorithm: criterion of balance for Boolean function

गणना सिद्धान्त एवं आटोमेटा (Theory of computation and automata) 
 Powerset construction: Algorithm to convert nondeterministic automaton to deterministic automaton.
 Todd-Coxeter algorithm: Procedure for generating cosets.

अन्य 
 Alpha max plus beta min algorithm: an approximation of the square-root of the sum of two squares.
 Astronomical algorithms
 Baum-Welch algorithm: hidden markov models
 Bit manipulation algorithms: Create bit mask algorithm
 Doomsday algorithm: day of the week
 Schreier-Sims algorithm: computing a base and strong generating set (BSGS) of a permutation group
 Viterbi algorithm: hidden markov models
 Xor swap algorithm: swaps the values of two variables without using a buffer
 Luhn algorithm: a method of validating identification numbers
 Rutishauser's algorithm
 Stemming algorithm: a method of reducing words to their stem, base, or root form
 Hamming weight (population count): find the number of 1 bits in a binary word
 Heisenman-Drogulous isomoglobic algorithm
 Gerchberg–Saxton algorithm: Phase retrieval algorithm for optical planes
 Shunting yard algorithm: convert an infix-notation math expression to postfix

बाहरी कड़ियाँ 
 Dictionary of Algorithms and Data Structures (अंग्रेजी मे)

कंप्यूटर
सूचियाँ