List of algorithms

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 along with one-line descriptions for each.
algorithmalgorithmsList of algorithms for automated planningCombinatoricsFloyd's cycle-finding algorithmGale–Shapley algorithmPseudorandom number generatorsACORN generatorBlum Blum ShubLagged Fibonacci generatorLinear congruential generatorMersenne TwisterGraph theoryColoring algorithmHopcroft–Karp algorithmmaximum cardinality matchingHungarian algorithmperfect matchingPrüfer codingPrüfer sequenceTarjan's off-line lowest common ancestors algorithmlowest common ancestorsTopological sortGraph drawingForce-based algorithmsSpectral layoutNetwork theoryGirvan–Newman algorithmHyperlink-Induced Topic SearchHubs and authoritiesPageRankTrustRankFlow networksDinic's algorithmstrongly polynomialmaximum flowflow networkEdmonds–Karp algorithmFord–Fulkerson algorithmKarger's algorithmminimum cutPush–relabel algorithmEdmonds' algorithmEuclidean minimum spanning treeLongest path problemMinimum spanning treeBorůvka's algorithmKruskal's algorithmPrim's algorithmReverse-delete algorithmNonblocking minimal spanning switchtelephone exchangeShortest path problemBellman–Ford algorithmshortest pathsDijkstra's algorithmFloyd–Warshall algorithmall pairs shortest pathJohnson's algorithmTransitive closureTraveling salesman problemChristofides algorithmNearest neighbour algorithmWarnsdorff's ruleKnight's tourState space searchGraph search algorithmBacktrackingBeam searchbest-first searchBeam stack searchpriority queueBidirectional searchBreadth-first searchBrute-force searchincremental heuristic searchDepth-first searchGeneral Problem SolverIterative deepening depth-first searchJump point searchLexicographic breadth-first searchUniform-cost searchtree searchCliquesBron–Kerbosch algorithmmaximal cliquesMaxCliqueDyn maximum clique algorithmmaximum cliqueStrongly connected componentsPath-based strong component algorithmKosaraju's algorithmTarjan's strongly connected components algorithmSubgraph isomorphism problemSequencesBitap algorithmPhonetic algorithmsDaitch–Mokotoff SoundexSoundexDouble MetaphoneMatch rating approachMetaphoneNYSIISphonetic algorithmString metricsDamerau–Levenshtein distanceLevenshtein distanceDice's coefficientJaccard indexHamming distanceJaro–Winkler distanceLevenshtein edit distanceTrigram searchSelection algorithmQuickselectIntroselectLinear searchTernary searchSorted listsBinary search algorithmFibonacci search techniqueFibonacci numbersJump searchPredictive searchmagnitudeUniform binary searchEytzinger binary searchMerge algorithmPermutationFisher–Yates shuffleSchensted algorithmYoung tableauxSteinhaus–Johnson–Trotter algorithmHeap's permutation generation algorithmCombinationDynamic time warpingHirschberg's algorithmsequence alignmentNeedleman–Wunsch algorithmSmith–Waterman algorithmSorting algorithmBubble sortCocktail shaker sortComb sortGnome sortOdd–even sortQuicksortBogosortSlowsortStooge sortFlashsortIntrosortTimsortInsertion sortLibrary sortPatience sortingShell sortTree sortCycle sortMerge sortStrand sortBead sortBucket sortBurstsortCounting sortPigeonhole sortPostman sortRadix sortHeapsortSelection sortBitonic sorterPancake sortingSpaghetti sortSamplesortSubsequenceLongest common subsequence problemLongest increasing subsequence problemRuzzo–Tompa algorithmShortest common supersequence problemSubstringsKadane's algorithmLongest common substring problemSubstring searchAho–Corasick string matching algorithmBoyer–Moore string-search algorithmsublinearBoyer–Moore–Horspool algorithmKnuth–Morris–Pratt algorithmRabin–Karp string search algorithmZhu–Takaoka string matching algorithmUkkonen's algorithmlinear-timeonline algorithmsuffix treesMatching wildcardsRich Salzwildmatopen-sourcerecursiveKrauss matching wildcards algorithmComputational mathematicsAbstract algebraChien searchSchreier–Sims algorithmstrong generating setpermutation groupTodd–Coxeter algorithmcosetsComputer algebraBuchberger's algorithmGröbner basisCantor–Zassenhaus algorithmFaugère F4 algorithmGosper's algorithmKnuth–Bendix completion algorithmrewritingMultivariate division algorithmpolynomialsPollard's kangaroo algorithmPolynomial long divisionRisch algorithmantiderivativesComputational geometryClosest pair problemCollision detectionCone algorithmConvex hull algorithmsconvex hullGraham scanQuickhullGift wrapping algorithmChan's algorithmKirkpatrick–Seidel algorithmEuclidean distance transformGeometric hashingaffine transformationGilbert–Johnson–Keerthi distance algorithmconvexJump-and-Walk algorithmLaplacian smoothingLine segment intersectionsweep line algorithmBentley–Ottmann algorithmMinimum bounding box algorithmsNearest neighbor searchNesting algorithmPoint in polygonPoint set registrationpoint setsRotating calipersantipodalconvex polygonShoelace algorithmTriangulationDelaunay triangulationRuppert's algorithmChew's second algorithmconstrained Delaunay triangulationsMarching trianglespoint cloudPolygon triangulationVoronoi diagramsBowyer–Watson algorithmFortune's AlgorithmQuasitriangulationNumber theoryBinary GCD algorithmBooth's multiplication algorithmChakravala methodPell's equationDiscrete logarithmBaby-step giant-stepIndex calculus algorithmPollard's rho algorithm for logarithmsPohlig–Hellman algorithmEuclidean algorithmgreatest common divisorExtended Euclidean algorithmInteger factorizationCongruence of squaresDixon's algorithmFermat's factorization methodGeneral number field sieveLenstra elliptic curve factorizationPollard's p − 1 algorithmPollard's rho algorithmprime factorization algorithmQuadratic sieveShor's algorithmSpecial number field sieveTrial divisionMultiplication algorithmsKaratsuba algorithmSchönhage–Strassen algorithmToom–Cook multiplicationModular square rootTonelli–Shanks algorithmCipolla's algorithmBerlekamp's root finding algorithmOdlyzko–Schönhage algorithmRiemann zeta functionLenstra–Lenstra–Lovász algorithmlatticePrimality testsAKS primality testBaillie–PSW primality testFermat primality testLucas primality testMiller–Rabin primality testSieve of AtkinSieve of EratosthenesSieve of SundaramNumerical analysisList of numerical analysis topicsDifferential equationEuler methodBackward Euler methodTrapezoidal rule (differential equations)Linear multistep methodsRunge–Kutta methodsEuler integrationMultigrid methodsPartial differential equationFinite difference methodCrank–Nicolson methodLax–WendroffVerlet integrationSpecial functionsComputation of πBorwein's algorithmGauss–Legendre algorithmChudnovsky algorithmBailey–Borwein–Plouffe formulaDivision algorithmsLong divisionRestoring divisionNon-restoring divisionSRT divisionNewton–Raphson divisionNewton's methodreciprocalGoldschmidt divisionBKM algorithmelementary functionsCORDICAddition-chain exponentiationExponentiating by squaringlarge integerMontgomery reductionmodular arithmeticFürer's algorithmasymptotic complexityRounding functionsSpigot algorithmmathematical constantAlpha max plus beta min algorithmMethods of computing square rootsnth root algorithmBinary splittingdivide and conquerKahan summation algorithmUnrestricted algorithmRadon transformLevel set methodInterpolationExtrapolationBirkhoff interpolationCubic interpolationHermite interpolationLagrange interpolationLagrange polynomialsLinear interpolationMonotone cubic interpolationMultivariate interpolationBicubic interpolationBilinear interpolationLanczos resamplingNearest-neighbor interpolationTricubic interpolationPareto interpolationPareto distributionPolynomial interpolationNeville's algorithmSpline interpolationRunge's phenomenonDe Boor algorithmB-splinesDe Casteljau's algorithmBézier curvesTrigonometric interpolationNumerical linear algebraEigenvalue algorithmsArnoldi iterationInverse iterationJacobi methodLanczos iterationPower iterationQR algorithmRayleigh quotient iterationGram–Schmidt processMatrix multiplication algorithmsCannon's algorithmdistributed algorithmmatrix multiplicationCoppersmith–Winograd algorithmFreivalds' algorithmStrassen algorithmsystems of linear equationsBiconjugate gradient methodConjugate gradientGaussian eliminationGauss–Jordan eliminationGauss–Seidel methodLevinson recursionToeplitz matrixStone's methodSuccessive over-relaxationTridiagonal matrix algorithmSparse matrixCuthill–McKee algorithmbandwidthsymmetric sparse matrixMinimum degree algorithmCholesky decompositionSymbolic Cholesky decompositionMonte Carlo methodGibbs samplingHybrid Monte CarloHamiltonianMarkov chain Monte CarloMetropolis–Hastings algorithmprobability distributionWang and Landau algorithmNumerical integrationMISER algorithmRoot-finding algorithmBisection methodFalse position methodHalley's methodITP methodMuller's methodcalculusRidder's methodSecant methodMathematical optimizationHybridAlpha–beta pruningBranch and boundBruss algorithmodds algorithmChain matrix multiplicationCombinatorial optimizationGreedy randomized adaptive search procedureHungarian methodassignment problemConstraint satisfactionAC-3 algorithmDifference map algorithmMin conflicts algorithmChaff algorithmBoolean satisfiability problemDavis–Putnam algorithmDavis–Putnam–Logemann–Loveland algorithmconjunctive normal formCNF-SATExact coverAlgorithm Xnondeterministic algorithmDancing LinksCross-entropy methodimportance samplingDifferential evolutionDynamic Programmingoverlapping subproblemsoptimal substructureEllipsoid methodEvolutionary computationEvolution strategyGene expression programmingGenetic algorithmsFitness proportionate selectionStochastic universal samplingTruncation selectionTournament selectionMemetic algorithmSwarm intelligenceAnt colony optimizationBees algorithmParticle swarmFrank-Wolfe algorithmGolden-section searchGradient descentHarmony searchmetaheuristicInterior point methodLinear programmingBenson's algorithmvector optimizationDantzig–Wolfe decompositionDelayed column generationInteger linear programmingBranch and cutCutting-plane methodKarmarkar's algorithmpolynomial timeSimplex algorithmLine searchLocal searchRandom-restart hill climbingTabu searchmetric spaceBest Bin FirstNewton's method in optimizationNonlinear optimizationBFGS methodGauss–Newton algorithmleast squaresLevenberg–Marquardt algorithmNelder–Mead methodSimulated annealingStochastic tunnelingSubset sumConjugate gradient methodsComputational scienceDoomsday algorithmZeller's congruenceEaster algorithmsBioinformaticsBasic Local Alignment Search ToolKabsch algorithmroot mean squared deviationVelvetde Bruijn graphssequence assemblyMaximum parsimony (phylogenetics)Bloom FilterGeoscienceVincenty's formulaeGeohashComputational linguisticsNatural language processingLesk algorithmStemming algorithmSukhotin's algorithmMedical algorithmsESC algorithmManning CriteriaTexas Medication Algorithm ProjectComputational physicsConstraint algorithmDemon algorithmmicrocanonical ensembleFeatherstone's algorithmGround stateVariational methodRitz methodn-body problemsBarnes–Hut simulationFast multipole methodRainflow-counting algorithmstressfatigueSweep and pruneVEGAS algorithmMonte Carlo simulationsGlauber dynamicsComputational statisticsAlgorithms for calculating varianceApproximate counting algorithmBayesian statisticsNested sampling algorithmClustering algorithmsAverage-linkage clusteringCanopy clustering algorithmChinese whispersComplete-linkage clusteringDBSCANExpectation-maximization algorithmFuzzy clusteringFLAME clusteringKHOPCA clustering algorithmk-means clusteringk-means++k-medoidsmedoidsLinde–Buzo–Gray algorithmLloyd's algorithmOPTICSSingle-linkage clusteringSUBCLUWard's methodWACA clustering algorithmEstimation TheoryOrdered subset expectation maximizationmedical imagingpositron emission tomographysingle-photon emission computed tomographyKalman filterdynamic systemFalse nearest neighbor algorithmfractal dimensionHidden Markov modelBaum–Welch algorithmposterior modeForward-backward algorithmViterbi algorithmPartial least squares regressionQueuing theoryBuzen's algorithmGordon–Newell theoremRANSACScoring algorithmmaximum likelihoodYamartino methodZiggurat algorithmComputer scienceComputer architectureTomasulo algorithmComputer graphicsClippingLine clippingCohen–SutherlandCyrus–BeckFast-clippingLiang–BarskyNicholl–Lee–NichollSutherland–HodgmanWeiler–AthertonContour linesIsosurfacesMarching cubesMarching squaresMarching tetrahedronsFlood fillGlobal illuminationAmbient occlusionBeam tracingCone tracingImage-based lightingMetropolis light transportPath tracingPhoton mappingRadiosityRay tracingHidden-surface removalNewell's algorithmPainter's algorithmScanline renderingWarnock algorithmLine drawingBresenham's line algorithmDDA line algorithmXiaolin Wu's line algorithmMidpoint circle algorithmRamer–Douglas–Peucker algorithmShadingGouraud shadingPhong shadingSummed area tableBinary space partitioningCryptographyTopics in cryptographyAsymmetric (public key) encryptionElGamalElliptic curve cryptographyNTRUEncryptDigital signaturesCryptographic hash functionsRIPEMD-160Tiger tree hashesWHIRLPOOLCryptographically secure pseudo-random number generatorsfactorizationFortunaYarrow algorithmLinear-feedback shift registerKey exchangeDiffie–Hellman key exchangeElliptic-curve Diffie–HellmanKey derivation functionspassword hashingkey stretchingbcryptPBKDF2scryptArgon2Message authentication codesPoly1305SipHashSecret sharingShamir's secret sharingSymmetric (secret key) encryptionAdvanced Encryption StandardRijndaelBlowfishTwofishThreefishData Encryption StandardRC4 (cipher)Tiny Encryption AlgorithmSalsa20Post-quantum cryptographyProof-of-work algorithmsQuine–McCluskey algorithmPetrick's methodEspresso heuristic logic minimizerList of machine learning algorithmsMachine learningStatistical classificationAlmeida–Pineda recurrent backpropagationALOPEXmachine-learning algorithmAssociation rule learningdata miningApriori algorithmEclat algorithmOne-attribute ruleBoosting (meta-algorithm)AdaBoostBrownBoostLogitBoostlogistic regressionLPBoostBootstrap aggregatingComputer VisionGrabcutGraph cutsDecision TreesC4.5 algorithmID3 algorithmClusteringunsupervised learningk-nearest neighborsfeature spaceLocality-sensitive hashingNeural NetworkBackpropagationsupervised learningHopfield netRecurrent neural networkPerceptronlinear classifierPulse-coupled neural networksNeural modelsvisual cortexbiomimeticRadial basis function networkbasis functionsSelf-organizing mapRandom forestReinforcement learningQ-learningState–Action–Reward–State–ActionMarkov decision processTemporal difference learningRelevance-Vector MachineSupport Vector MachineStructured SVMWinnow algorithmmultiplicative weight-update schemeProgramming language theoryC3 linearizationChaitin's algorithmHindley–Milner type inference algorithmRete algorithmproduction ruleSethi-Ullman algorithmParsingCYK algorithmcontext-free grammarsChomsky normal formEarley parsercontext-free grammarGLR parserMasaru Tomitalinear timeInside-outside algorithmprobabilistic context-free grammarsLL parserLR parserCanonical LR parserLALR (look-ahead LR) parserOperator-precedence parserSLR (Simple LR) parserSimple precedence parserPackrat parserparsing expression grammarsRecursive descent parsertop-down parserShunting-yard algorithmPratt parserLexical analysisQuantum algorithmDeutsch–Jozsa algorithmGrover's algorithmexponentialSimon's algorithmTheory of computationminimizing the number of states in a deterministic finite automatonPowerset constructiondeterministic automatonTarski–Kuratowski algorithmnon-deterministic algorithmarithmetical hierarchyanalytical hierarchyInformation theorySignal processingCoding theoryError detection and correctionBCH CodesBerlekamp–Massey algorithmPeterson–Gorenstein–Zierler algorithmReed–Solomon error correctionBCJR algorithmForward error correctionGray codeHamming codesHamming(7,4)Hamming codeHamming weightRedundancy checksAdler-32Cyclic redundancy checkDamm algorithmFletcher's checksumLongitudinal redundancy checkLuhn algorithmLuhn mod N algorithmParityVerhoeff algorithmBurrows–Wheeler transformlossless compressionContext tree weightingDelta encodingDynamic Markov compressionDictionary codersByte pair encodingDeflateLempel–ZivLZ77 and LZ78Lempel–Ziv Jeff BonwickLempel–Ziv–Markov chain algorithmLempel–Ziv–OberhumerLempel–Ziv–StacLempel–Ziv–Storer–SzymanskiLempel–Ziv–WelchLempel–Ziv Ross WilliamsEntropy encodingArithmetic codingentropyRange encodingHuffman codingAdaptive Huffman codingadaptive codingPackage-merge algorithmShannon–Fano codingShannon–Fano–Elias codingEntropy coding with known entropy characteristicsGolomb codingRice codingTruncated binary encodingUnary codingUniversal codesExponential-Golomb codingFibonacci codingLevenshtein codingFast Efficient & Lossless Image Compression SystemIncremental encodingPrediction by partial matchingRun-length encodingSEQUITUR algorithmnormal mapsSpeechA-law algorithmCode-excited linear predictionLinear predictive codingspectral envelopeMu-law algorithmWarped Linear Predictive CodingImage compressionBlock Truncation CodingEmbedded Zerotree WaveletFast Cosine Transform algorithmsFractal compressionSet Partitioning in Hierarchical TreesWavelet compressionTransform codingVideo compressionVector quantizationDigital signal processingAdaptive-additive algorithmDiscrete Fourier transformBluestein's FFT algorithmBruun's FFT algorithmCooley–Tukey FFT algorithmFast Fourier transformPrime-factor FFT algorithmRader's FFT algorithmFast folding algorithmGerchberg–Saxton algorithmGoertzel algorithmKarplus-Strong string synthesisDigital image processingHistogram equalizationAdaptive histogram equalizationConnected-component labelingDitheringhalf-toningError diffusionFloyd–Steinberg ditheringOrdered ditheringRiemersma ditheringdifference-map algorithmX-Ray diffractionFeature detectionCanny edge detectorGeneralised Hough transformHough transformMarr–Hildreth algorithmedge detectionSpeeded Up Robust FeaturesRichardson–Lucy deconvolutionBlind deconvolutionpoint spread functionMedian filteringSeam carvingSegmentationGrowCut algorithmRandom walker algorithmRegion growingWatershed transformationSoftware engineeringCache algorithmsCHS conversionDouble dabbleHash functionFowler–Noll–Vo hash functionPearson hashingZobrist hashingtransposition tablesUnicode collation algorithmXor swap algorithmDatabaseAlgorithms for Recovery and Isolation Exploiting SemanticstransactionJoin algorithmsBlock nested loopHash joinNested loop joinSort-Merge Join The ChaseDistributed systemsClock synchronizationBerkeley algorithmCristian's algorithmIntersection algorithmMarzullo's algorithmConsensus (computer science)Chandra–Toueg consensus algorithmPaxos algorithmRaft (computer science)Dijkstra-Scholten algorithmHuang's algorithmLamport orderingpartial orderingLeader electionBully algorithmMutual exclusionLamport's Distributed Mutual Exclusion AlgorithmNaimi-Trehel's log(n) AlgorithmMaekawa's AlgorithmRaymond's AlgorithmRicart–Agrawala AlgorithmSnapshot algorithmChandy–Lamport algorithmVector clockscausalityBuddy memory allocationGarbage collectorsCheney's algorithmGenerational garbage collectorMark-compact algorithmmark-sweep algorithmCheney's copying algorithmMark and sweepReference countingNetwork schedulerKarn's algorithmLuleå algorithmNetwork congestionExponential backoffNagle's algorithmTruncated binary exponential backoffOperating systemsBanker's algorithmPage replacement algorithmsAdaptive replacement cacheClock with Adaptive ReplacementProcess synchronizationProcess schedulerDekker's algorithmLamport's Bakery algorithmPeterson's algorithmScheduling (computing)Earliest deadline first schedulingFair-share schedulingLeast slack time schedulingList schedulingMulti level feedback queueRate-monotonic schedulingRound-robin schedulingShortest job nextShortest remaining timeTop-nodes algorithmI/O schedulingElevator algorithmShortest seek firstseek timeList of data structuresList of pathfinding algorithmsList of algorithm general topicsList of terms relating to algorithms and data structuresHeuristicData structuresAssociative arrayBinary search treeFenwick treeHash tableLinked listSegment treeStringalgorithmic paradigmsBinary searchGraph traversalGreedyMinimaxOnlineRandomizedRecursionRoot-findingSortingStreamingSweep lineString-searchingTopological sorting