Difference between revisions of "Algorithm classification"

From Algowiki
Jump to navigation Jump to search
[quality revision][quality revision]
(Add levels of classification.)
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
# <div id="Vector operations">'''Vector operations'''</div>
+
__TOC__
## {{level|Pairwise summation}}
+
= Linear algebra problems =
## {{level|Dot product}}
+
 
# <div id="Matrix-vector operations">'''Matrix-vector operations'''</div>
+
==Matrix and vector operations==
## {{level|Dense matrix-vector multiplication}}
+
===Vector operations===
# <div id="Matrix operations">'''Matrix operations'''</div>
+
# {{level|Pairwise summation}}
## {{level|Dense matrix multiplication}}
+
## {{level|Pairwise summation of numbers}}
# <div id="Matrix decomposition">'''Matrix decomposition'''</div>
+
## {{level|Parallel prefix scan algorithm using pairwise summation}}
## ''Triangular decomposition''
+
# {{level|Uniform norm of a vector: Real version, serial-parallel variant}}
### {{level|Gaussian elimination}}
+
# {{level|Dot product}}
### {{level|Cholesky method}}
+
# {{level|The serial-parallel summation method}}
#### {{level|Cholesky decomposition}}
+
=== Matrix-vector operations ===
## ''Unitary-triangular decomposition''
+
==== Multiplying a nonsingular matrix by a vector ====
### {{level|Givens method}}
+
# {{level|Dense matrix-vector multiplication}}
## ''Decomposition into unitary and Hessenberg matrices''
+
==== Multiplying a matrix of special form by a vector ====
## ''Decomposition into unitary and diagonal matrices''
+
# {{level|Fourier transform}}
# <div id="Solution of linear equations systems">'''Solution of linear equations systems'''</div>
+
## {{level|Fast Fourier transform for composite dimension}}
## ''Direct methods''
+
### {{level|Fast Fourier transform for powers-of-two}}
### ''Linpack benchmark''
+
#### {{level|Cooley–Tukey Fast Fourier Transform, radix-2 case}}
### ''Matrices of a special form''
+
#### {{level|Fast Fourier transform for even powers-of-two}}
#### ''Triangular matrices''
+
### {{level|Fast Fourier transform for composite dimension with small prime divisors (2,3,5,7)}}
##### {{level|Forward substitution}}
+
## {{level|Fast Fourier transform for prime dimension}}
##### {{level|Backward substitution}}
+
===Matrix operations===
#### ''Tridiagonal matrices''
+
# {{level|Dense matrix multiplication}}
##### ''LU decomposition''
+
## {{level|Dense matrix multiplication (serial version for real matrices)}}
###### ''Thomas algorithm''
+
## {{level|Strassen's algorithm}}
####### {{level|Thomas algorithm, pointwise version}}
+
 
## ''Iterative methods''
+
==Matrix decompositions==
# <div id="Computer benchmarks">'''Computer benchmarks'''</div>
+
{{level|Matrix decomposition problem}}
# <div id="Fourier transform">'''Fourier transform'''</div>
+
# {{level|Triangular decompositions}}
## {{level|Cooley–Tukey Fast Fourier Transform, radix-2 case}}
+
## {{level|Gaussian elimination (finding the LU decomposition)}}
# <div id="Algebra of polynomials">'''Algebra of polynomials'''</div>
+
### {{level|LU decomposition using Gaussian elimination without pivoting}}
## {{level|Horners method}}
+
#### {{level|LU decomposition via Gaussian elimination}}
# <div id="Numerical integration methods">'''Numerical integration methods'''</div>
+
#### {{level|Gaussian elimination, compact scheme for tridiagonal matrices and its modifications}}
# <div id="Graph algorithms">'''Graph algorithms'''</div>
+
##### {{level|Compact scheme for Gaussian elimination: Dense matrix}}
## {{level|Single Source Shortest Path (SSSP)}}
+
##### {{level|Compact scheme for Gaussian elimination and its modifications: Tridiagonal matrix}}
## {{level|All Pairs Shortest Path (APSP)}}
+
###### {{level|Gaussian elimination, compact scheme for tridiagonal matrices, serial version}}
## {{level|Transitive closure of a directed graph}}
+
###### {{level|Stone doubling algorithm for the LU decomposition of a tridiagonal matrix}}
## {{level|Construction of the minimum spanning tree (MST)}}
+
###### {{level|Serial-parallel algorithm for the LU decomposition of a tridiagonal matrix}}
## {{level|Search for isomorphic subgraphs}}
+
### {{level|LU decomposition using Gaussian elimination with pivoting}}
## {{level|Graph connectivity}}
+
#### {{level|Gaussian elimination with column pivoting}}
## {{level|Finding maximal flow in a transportation network}}
+
#### {{level|Gaussian elimination with row pivoting}}
## {{level|Assignment problem}}
+
#### {{level|Gaussian elimination with diagonal pivoting}}
# <div id="Search algorithms">'''Search algorithms'''</div>
+
#### {{level|Gaussian elimination with complete pivoting}}
# <div id="Sorting algorithms">'''Sorting algorithms'''</div>
+
## {{level|Cholesky method}}
# <div id="Computational geometry">'''Computational geometry'''</div>
+
### {{level|Cholesky decomposition}}
# <div id="Computer graphics">'''Computer graphics'''</div>
+
# {{level|Available triangular decompositions for matrices of special form}}
# <div id="Cryptographic algorithms">'''Cryptographic algorithms'''</div>
+
# {{level|Unitary-triangular factorizations}}
# <div id="Neural networks">'''Neural networks'''</div>
+
## {{level|QR decomposition of dense nonsingular matrices}}
# <div id="Optimization algorithms">'''Optimization algorithms'''</div>
+
### {{level|Givens (rotations) method for the QR decomposition of a matrix}}
# <div id="Game theory algorithms">'''Game theory algorithms'''</div>
+
#### {{level|Givens method}}
# <div id="Algorithms of quantum system simulation">'''Algorithms of quantum system simulation'''</div>
+
### {{level|Householder (reflections) method for the QR decomposition of a matrix}}
## ''Algorithms of quantum computation simulation''
+
#### {{level|Householder (reflections) method for the QR decomposition of a square matrix, real point-wise version}}
# <div id="Algorithms for solving equations of mathematical physics">'''Algorithms for solving equations of mathematical physics'''</div>
+
### {{level|Orthogonalization method}}
## {{level|Poisson equation, solving with DFT}}
+
#### {{level|Classical orthogonalization method}}
# <div id="Other algorithms">'''Other algorithms'''</div>
+
#### {{level|Orthogonalization method with reorthogonalization}}
 +
### {{level|Triangular decomposition of a Gram matrix}}
 +
## {{level|QR decomposition methods for dense Hessenberg matrices}}
 +
### {{level|Givens (rotations) method for the QR decomposition of a (real) Hessenberg matrix}}
 +
### {{level|Householder (reflections) method for the QR decomposition of a (real) Hessenberg matrix}}
 +
# {{level|Reducing matrices to compact forms}}
 +
## {{level|Unitary reductions to Hessenberg form}}
 +
### {{level|Householder (reflections) method for reducing of a matrix to Hessenberg form}}
 +
#### {{level|Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form}}
 +
### {{level|Givens (rotations) method for reducing a matrix to Hessenberg form}}
 +
#### {{level|Classical point-wise Givens (rotations) method for reducing a matrix to Hessenberg form}}
 +
## {{level|Unitary reductions to tridiagonal form}}
 +
### {{level|Householder (reflections) method for reducing to tridiagonal form}}
 +
#### {{level|Householder (reflections) method for reducing a symmetric matrix to tridiagonal form}}
 +
#### {{level|Householder (reflections) method for reducing a complex Hermitian matrix to symmetric tridiagonal form}}
 +
### {{level|Givens (rotations) reduction to tridiagonal form}}
 +
## {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}}
 +
# {{level|Unitary non-similarity reductions to compact forms}}
 +
## {{level|Unitary reduction to bidiagonal form}}
 +
### {{level|Householder (reflections) reduction of a matrix to bidiagonal form}}
 +
### {{level|Givens (rotations) reduction of a matrix to bidiagonal form}}
 +
## {{level|Singular value decomposition}}
 +
### {{level|Singular value decomposition (finding singular values and singular vectors)}}
 +
#### {{level|Methods for calculating singular values of bidiagonal matrices}}
 +
##### {{level|The dqds algorithm for calculating singular values of bidiagonal matrices}}
 +
###### {{level|One step of the dqds algorithm}}
 +
 
 +
==Solving systems of linear algebraic  equations==
 +
# {{level|Direct methods}}
 +
## {{level|Linpack benchmark}}
 +
## {{level|Matrices of a special form}}
 +
### {{level|Triangular matrices}}
 +
#### {{level|Forward substitution}}
 +
#### {{level|Backward substitution}}
 +
#### {{level|Bidiagonal matrices}}
 +
##### {{level|Forward and backward substitution for bidiagonal matrices}}
 +
##### {{level|Stone doubling algorithm for solving bidiagonal SLAEs}}
 +
##### {{level|Serial-parallel variant of the backward substitution}}
 +
### {{level|Methods for solving tridiagonal SLAEs}}
 +
#### {{level|Methods based on the conventional LU decomposition}}
 +
##### {{level|Thomas algorithm}}
 +
###### {{level|Thomas algorithm, pointwise version}}
 +
###### {{level|Repeated Thomas algorithm, pointwise version}}
 +
##### {{level|Stone doubling algorithm}}
 +
###### {{level|Stone doubling algorithm for the LU decomposition of tridiagonal matrices}}
 +
###### {{level|Stone doubling algorithm for solving bidiagonal SLAEs}}
 +
##### {{level|Serial-parallel method for solving tridiagonal matrices based on the LU decomposition and backward substitutions}}
 +
#### Other methods
 +
##### {{level|Reduction method}}
 +
###### {{level|Complete reduction method}}
 +
###### {{level|Reduction method repeated for a new right-hand side}}
 +
##### {{level|Two-sided Thomas algorithm }}
 +
###### {{level|Two-sided Thomas algorithm, pointwise version}}
 +
###### {{level|Repeated two-sided Thomas algorithm, pointwise version}}
 +
##### {{level|Cyclic reduction}}
 +
###### {{level|Complete cyclic reduction}}
 +
###### {{level|Cyclic reduction repeated for a new right-hand side}}
 +
##### {{level|Bordering method}}
 +
### Methods for solving block triangular matrices
 +
#### {{level|Block forward substitution (real version)}}
 +
#### {{level|Block backward substitution (real version)}}
 +
#### Methods for solving block bidiagonal matrices
 +
##### {{level|Forward and backward substitution for block bidiagonal matrices}}
 +
##### {{level|Stone doubling algorithm for solving block bidiagonal matrices}}
 +
##### {{level|Serial-parallel variant of the block backward substitution for solving block bidiagonal matrices}}
 +
### {{level|Methods for solving block tridiagonal matrices}}
 +
#### Methods based on the conventional LU decomposition
 +
##### {{level|Block Thomas algorithm}}
 +
##### {{level|Serial-parallel method for solving block systems of linear algebraic equations based on the LU decomposition and backward substitutions}}
 +
#### Other methods
 +
##### {{level|Two-sided Thomas algorithm, block variant}}
 +
##### {{level|Block cyclic reduction}}
 +
##### {{level|Block bordering method}}
 +
## {{level|Solving systems of linear algebraic equations with coefficient matrices of special form whose inverses are known}}
 +
# Iterative methods for solving systems of linear algebraic equations
 +
## {{level|High Performance Conjugate Gradient (HPCG) benchmark}}
 +
## {{level|Biconjugate gradient stabilized method (BiCGStab)}}
 +
## {{level|Kaczmarz's algorithm}}
 +
 
 +
==Solving eigenvalue problems==
 +
# {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}}
 +
## {{level|QR algorithm}}
 +
### {{level|QR algorithm as implemented in SCALAPACK}}
 +
#### {{level|Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form}}
 +
#### {{level|Hessenberg QR algorithm as implemented in SCALAPACK}}
 +
### {{level|Symmetric QR algorithm as implemented in SCALAPACK}}
 +
#### {{level|Householder (reflections) method for reducing a symmetric matrix to tridiagonal form}}
 +
#### {{level|Symmetric tridiagonal QR algorithm as implemented in SCALAPACK}}
 +
### {{level|QR algorithm for complex Hermitian matrices as implemented in SCALAPACK}}
 +
#### {{level|Householder (reflections) method for reducing a complex Hermitian matrix to symmetric tridiagonal form}}
 +
#### {{level|Symmetric tridiagonal QR algorithm as implemented in SCALAPACK}}
 +
## {{level|The Jacobi (rotations) method for solving the symmetric eigenvalue problem}}
 +
### {{level|The classical Jacobi (rotations) method with pivoting for symmetric matrices}}
 +
### {{level|Serial Jacobi (rotations) method for symmetric matrices}}
 +
### {{level|Serial Jacobi (rotations) method with thresholds for symmetric matrices}}
 +
## {{level|Lanczos algorithm}}
 +
### {{level|Lanczos algorithm in exact algorithm (without reorthogonalization)}}
 +
# {{level|Partial eigenvalue problem}}
 +
## {{level|Method of bisection}}
 +
# {{level|Singular value decomposition (finding singular values and singular vectors)}}
 +
## {{level|Jacobi (rotations) method for finding singular values}}
 +
### {{level|Serial Jacobi (rotations) method for finding singular values}}
 +
### {{level|Jacobi method with a special choice of rotations for finding singular values}}
 +
## {{level|QR algorithm as applied to singular value decomposition алгоритм}}
 +
 
 +
==Algebra of polynomials==
 +
# {{level|Horners method}}
 +
 
 +
= Algorithms on lists and arrays =
 +
 
 +
==Search algorithms==
 +
# {{level|Linear search: Finding an item in an arbitrary list|Linear search}}, <math>O(n)</math>
 +
# {{level|Binary search: Finding the position of a target value within a sorted array}}, <math>O(\log(n))</math>
 +
 
 +
==Sorting algorithms==
 +
# {{level|Binary tree sort}}
 +
# {{level|Bubble sort}}
 +
# {{level|Merge sort (serial and parallel variants)}}
 +
 
 +
==Graph algorithms==
 +
# Graph traversal
 +
## {{level|Breadth-first search (BFS)}}
 +
## {{level|Depth-first search (DFS)}}
 +
# {{level|Single Source Shortest Path (SSSP)}}
 +
## {{level|Breadth-first search (BFS)}} (for unweighted graphs)
 +
## {{level|Dijkstra's algorithm}}
 +
## {{level|Bellman-Ford algorithm}}
 +
## {{level|Δ-stepping algorithm}}
 +
# {{level|All Pairs Shortest Path (APSP)}}
 +
## {{level|Johnson's algorithm}}
 +
## {{level|Floyd-Warshall algorithm}}
 +
# {{level|Transitive closure of a directed graph}}
 +
## {{level|Purdom's algorithm}}
 +
# {{level|Longest shortest path}}
 +
# {{level|Construction of the minimum spanning tree (MST)}}
 +
## {{level|Boruvka's algorithm}}
 +
## {{level|Kruskal's algorithm}}
 +
## {{level|Prim's algorithm}}
 +
## {{level|GHS algorithm}}
 +
# {{level|Search for isomorphic subgraphs}}
 +
## {{level|Ullman's algorithm}}
 +
## {{level|VF2 algorithm}}
 +
# {{level|Graph connectivity}}
 +
## {{level|Shiloach-Vishkin algorithm for finding the connected components}}
 +
## {{level|Disjoint set union}}
 +
## {{level|Tarjan's strongly connected components algorithm}}
 +
## {{level|DCSC algorithm for finding the strongly connected components}}
 +
## {{level|Tarjan's biconnected components algorithm}}
 +
## {{level|Tarjan-Vishkin biconnected components algorithm}}
 +
## {{level|Tarjan's algorithm for finding the bridges of a graph}}
 +
## {{level|Vertex connectivity of a graph}}
 +
## {{level|Gabow's edge connectivity algorithm}}
 +
# {{level|Finding maximal flow in a transportation network}}
 +
## {{level|Ford–Fulkerson algorithm}}
 +
## {{level|Preflow-Push algorithm}}
 +
# {{level|Finding minimal-cost flow in a transportation network}}
 +
# {{level|Assignment problem}}
 +
## {{level|Hungarian algorithm}}
 +
## {{level|Auction algorithm}}
 +
## {{level|Hopcroft–Karp algorithm}}
 +
# {{level|Betweenness centrality algorithm}}
 +
 
 +
=Computational geometry=
 +
# {{level|Finding the diameter of a point set}}
 +
# {{level|Finding the convex hull of a point set}}
 +
# {{level|Delaunay triangulation}}
 +
# {{level|Voronoi diagram}}
 +
# {{level|Point-in-polygon problem}}
 +
# {{level|Convex polygon intersection}}
 +
# {{level|Star-shaped polygon intersection}}
 +
 
 +
==Computer graphics==
 +
# {{level|Line drawing algorithms: Approximating a line segment on discrete graphical media}}
 +
# {{level|Determining visible parts of a three-dimensional scene}}
 +
# {{level|Ray tracing: Rendering realistic images}}
 +
# {{level|Global illumination: Regarding direct illumination and reflection from other objects}}
 +
 
 +
=Computer analysis and modeling=
 +
 
 +
==Computer benchmarks==
 +
# {{level|High Performance Conjugate Gradient (HPCG) benchmark}}
 +
# {{level|Linpack benchmark}}
 +
 
 +
==Algorithms of quantum system simulation==
 +
# {{level|Algorithms of quantum computation simulation}}
 +
## {{level|Single-qubit transform of a state vector}}
 +
## {{level|Two-qubit transform of a state vector}}
 +
## {{level|Quantum Fourier transform simulation}}
 +
 
 +
==Machine learning algorithms==
 +
# {{level|k-means clustering}}
 +
 
 +
===Neural networks===
 +
# {{level|Pattern recognition}}
 +
## {{level|Text recognition}}
 +
## {{level|Speech recognition}}
 +
## {{level|Face recognition}}
 +
 
 +
===Game theory algorithms===
 +
 
 +
= Miscellaneous applied problems =
 +
 
 +
==Optimization algorithms==
 +
# {{level|Linear programming}}
 +
# {{level|Simplex algorithm}}
 +
# {{level|Branch and bound method}}
 +
# {{level|Genetic algorithms}}
 +
# {{level|Ant colony algorithms}}
 +
# {{level|Hybrid algorithms}}
 +
# {{level|Stochastic dual dynamic programming (SDDP)}}
 +
 
 +
==Solving systems of nonlinear equations==
 +
# {{level|Newton's method for systems of nonlinear equations}}
 +
 
 +
==Numerical quadrature==
 +
# {{level|Cubature rules}}
 +
# {{level|Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)}}
 +
## {{level|Rectangle rule}}
 +
## {{level|Trapezoid rule}}
 +
## {{level|Simpson rule}}
 +
## {{level|Gauss rule}}
 +
 
 +
==Algorithms for solving equations of mathematical physics==
 +
# {{level|Poisson equation, solving with DFT}}
 +
 
 +
=Cryptographic algorithms=
 +
# {{level|Meet-in-the-middle attack}}
 +
 
 +
=Other algorithms=
  
 
[[Ru:Классификация алгоритмов]]
 
[[Ru:Классификация алгоритмов]]

Latest revision as of 13:06, 15 March 2018

1 Linear algebra problems

1.1 Matrix and vector operations

1.1.1 Vector operations

  1. Method level Pairwise summation
    1. Method level Pairwise summation of numbers
    2. Algorithm level Parallel prefix scan algorithm using pairwise summation
  2. Algorithm level Uniform norm of a vector: Real version, serial-parallel variant
  3. Algorithm level Dot product
  4. Algorithm level The serial-parallel summation method

1.1.2 Matrix-vector operations

1.1.2.1 Multiplying a nonsingular matrix by a vector

  1. Algorithm level Dense matrix-vector multiplication

1.1.2.2 Multiplying a matrix of special form by a vector

  1. Fourier transform
    1. Fast Fourier transform for composite dimension
      1. Method level Fast Fourier transform for powers-of-two
        1. Algorithm level Cooley–Tukey Fast Fourier Transform, radix-2 case
        2. Fast Fourier transform for even powers-of-two
      2. Fast Fourier transform for composite dimension with small prime divisors (2,3,5,7)
    2. Fast Fourier transform for prime dimension

1.1.3 Matrix operations

  1. Problem level Dense matrix multiplication
    1. Algorithm level Dense matrix multiplication (serial version for real matrices)
    2. Strassen's algorithm

1.2 Matrix decompositions

Problem level Matrix decomposition problem

  1. Problem level Triangular decompositions
    1. Method level Gaussian elimination (finding the LU decomposition)
      1. Method level LU decomposition using Gaussian elimination without pivoting
        1. Algorithm level LU decomposition via Gaussian elimination
        2. Method level Gaussian elimination, compact scheme for tridiagonal matrices and its modifications
          1. Compact scheme for Gaussian elimination: Dense matrix
          2. Method level Compact scheme for Gaussian elimination and its modifications: Tridiagonal matrix
            1. Algorithm level Gaussian elimination, compact scheme for tridiagonal matrices, serial version
            2. Algorithm level Stone doubling algorithm for the LU decomposition of a tridiagonal matrix
            3. Method level Serial-parallel algorithm for the LU decomposition of a tridiagonal matrix
      2. Method level LU decomposition using Gaussian elimination with pivoting
        1. Algorithm level Gaussian elimination with column pivoting
        2. Algorithm level Gaussian elimination with row pivoting
        3. Algorithm level Gaussian elimination with diagonal pivoting
        4. Algorithm level Gaussian elimination with complete pivoting
    2. Method level Cholesky method
      1. Algorithm level Cholesky decomposition
  2. Available triangular decompositions for matrices of special form
  3. Problem level Unitary-triangular factorizations
    1. Problem level QR decomposition of dense nonsingular matrices
      1. Method level Givens (rotations) method for the QR decomposition of a matrix
        1. Algorithm level Givens method
      2. Method level Householder (reflections) method for the QR decomposition of a matrix
        1. Algorithm level Householder (reflections) method for the QR decomposition of a square matrix, real point-wise version
      3. Method level Orthogonalization method
        1. Algorithm level Classical orthogonalization method
        2. Algorithm level Orthogonalization method with reorthogonalization
      4. Method level Triangular decomposition of a Gram matrix
    2. Problem level QR decomposition methods for dense Hessenberg matrices
      1. Method level Givens (rotations) method for the QR decomposition of a (real) Hessenberg matrix
      2. Method level Householder (reflections) method for the QR decomposition of a (real) Hessenberg matrix
  4. Problem level Reducing matrices to compact forms
    1. Problem level Unitary reductions to Hessenberg form
      1. Method level Householder (reflections) method for reducing of a matrix to Hessenberg form
        1. Algorithm level Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form
      2. Givens (rotations) method for reducing a matrix to Hessenberg form
        1. Classical point-wise Givens (rotations) method for reducing a matrix to Hessenberg form
    2. Problem level Unitary reductions to tridiagonal form
      1. Householder (reflections) method for reducing to tridiagonal form
        1. Algorithm level Householder (reflections) method for reducing a symmetric matrix to tridiagonal form
        2. Algorithm level Householder (reflections) method for reducing a complex Hermitian matrix to symmetric tridiagonal form
      2. Givens (rotations) reduction to tridiagonal form
    3. Problem level Eigenvalue decomposition (finding eigenvalues and eigenvectors)
  5. Unitary non-similarity reductions to compact forms
    1. Unitary reduction to bidiagonal form
      1. Algorithm level Householder (reflections) reduction of a matrix to bidiagonal form
      2. Givens (rotations) reduction of a matrix to bidiagonal form
    2. Singular value decomposition
      1. Problem level Singular value decomposition (finding singular values and singular vectors)
        1. Methods for calculating singular values of bidiagonal matrices
          1. The dqds algorithm for calculating singular values of bidiagonal matrices
            1. Algorithm level One step of the dqds algorithm

1.3 Solving systems of linear algebraic equations

  1. Direct methods
    1. Algorithm level Linpack benchmark
    2. Matrices of a special form
      1. Triangular matrices
        1. Algorithm level Forward substitution
        2. Algorithm level Backward substitution
        3. Bidiagonal matrices
          1. Forward and backward substitution for bidiagonal matrices
          2. Algorithm level Stone doubling algorithm for solving bidiagonal SLAEs
          3. Serial-parallel variant of the backward substitution
      2. Problem level Methods for solving tridiagonal SLAEs
        1. Methods based on the conventional LU decomposition
          1. Method level Thomas algorithm
            1. Algorithm level Thomas algorithm, pointwise version
            2. Algorithm level Repeated Thomas algorithm, pointwise version
          2. Method level Stone doubling algorithm
            1. Stone doubling algorithm for the LU decomposition of tridiagonal matrices
            2. Algorithm level Stone doubling algorithm for solving bidiagonal SLAEs
          3. Method level Serial-parallel method for solving tridiagonal matrices based on the LU decomposition and backward substitutions
        2. Other methods
          1. Reduction method
            1. Complete reduction method
            2. Reduction method repeated for a new right-hand side
          2. Two-sided Thomas algorithm
            1. Algorithm level Two-sided Thomas algorithm, pointwise version
            2. Algorithm level Repeated two-sided Thomas algorithm, pointwise version
          3. Cyclic reduction
            1. Algorithm level Complete cyclic reduction
            2. Cyclic reduction repeated for a new right-hand side
          4. Bordering method
      3. Methods for solving block triangular matrices
        1. Block forward substitution (real version)
        2. Block backward substitution (real version)
        3. Methods for solving block bidiagonal matrices
          1. Forward and backward substitution for block bidiagonal matrices
          2. Stone doubling algorithm for solving block bidiagonal matrices
          3. Serial-parallel variant of the block backward substitution for solving block bidiagonal matrices
      4. Methods for solving block tridiagonal matrices
        1. Methods based on the conventional LU decomposition
          1. Algorithm level Block Thomas algorithm
          2. Serial-parallel method for solving block systems of linear algebraic equations based on the LU decomposition and backward substitutions
        2. Other methods
          1. Algorithm level Two-sided Thomas algorithm, block variant
          2. Block cyclic reduction
          3. Block bordering method
    3. Solving systems of linear algebraic equations with coefficient matrices of special form whose inverses are known
  2. Iterative methods for solving systems of linear algebraic equations
    1. Algorithm level High Performance Conjugate Gradient (HPCG) benchmark
    2. Algorithm level Biconjugate gradient stabilized method (BiCGStab)
    3. Algorithm level Kaczmarz's algorithm

1.4 Solving eigenvalue problems

  1. Problem level Eigenvalue decomposition (finding eigenvalues and eigenvectors)
    1. Method level QR algorithm
      1. Algorithm level QR algorithm as implemented in SCALAPACK
        1. Algorithm level Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form
        2. Algorithm level Hessenberg QR algorithm as implemented in SCALAPACK
      2. Algorithm level Symmetric QR algorithm as implemented in SCALAPACK
        1. Algorithm level Householder (reflections) method for reducing a symmetric matrix to tridiagonal form
        2. Symmetric tridiagonal QR algorithm as implemented in SCALAPACK
      3. Algorithm level QR algorithm for complex Hermitian matrices as implemented in SCALAPACK
        1. Algorithm level Householder (reflections) method for reducing a complex Hermitian matrix to symmetric tridiagonal form
        2. Symmetric tridiagonal QR algorithm as implemented in SCALAPACK
    2. Method level The Jacobi (rotations) method for solving the symmetric eigenvalue problem
      1. Algorithm level The classical Jacobi (rotations) method with pivoting for symmetric matrices
      2. Algorithm level Serial Jacobi (rotations) method for symmetric matrices
      3. Algorithm level Serial Jacobi (rotations) method with thresholds for symmetric matrices
    3. Lanczos algorithm
      1. Algorithm level Lanczos algorithm in exact algorithm (without reorthogonalization)
  2. Partial eigenvalue problem
    1. Method of bisection
  3. Problem level Singular value decomposition (finding singular values and singular vectors)
    1. Method level Jacobi (rotations) method for finding singular values
      1. Serial Jacobi (rotations) method for finding singular values
      2. Jacobi method with a special choice of rotations for finding singular values
    2. QR algorithm as applied to singular value decomposition алгоритм

1.5 Algebra of polynomials

  1. Algorithm level Horners method

2 Algorithms on lists and arrays

2.1 Search algorithms

  1. Linear search: Finding an item in an arbitrary list, [math]O(n)[/math]
  2. Algorithm level Binary search: Finding the position of a target value within a sorted array, [math]O(\log(n))[/math]

2.2 Sorting algorithms

  1. Binary tree sort
  2. Bubble sort
  3. Merge sort (serial and parallel variants)

2.3 Graph algorithms

  1. Graph traversal
    1. Algorithm level Breadth-first search (BFS)
    2. Algorithm level Depth-first search (DFS)
  2. Problem level Single Source Shortest Path (SSSP)
    1. Algorithm level Breadth-first search (BFS) (for unweighted graphs)
    2. Algorithm level Dijkstra's algorithm
    3. Algorithm level Bellman-Ford algorithm
    4. Algorithm level Δ-stepping algorithm
  3. Problem level All Pairs Shortest Path (APSP)
    1. Algorithm level Johnson's algorithm
    2. Algorithm level Floyd-Warshall algorithm
  4. Problem level Transitive closure of a directed graph
    1. Algorithm level Purdom's algorithm
  5. Algorithm level Longest shortest path
  6. Problem level Construction of the minimum spanning tree (MST)
    1. Algorithm level Boruvka's algorithm
    2. Algorithm level Kruskal's algorithm
    3. Algorithm level Prim's algorithm
    4. Algorithm level GHS algorithm
  7. Problem level Search for isomorphic subgraphs
    1. Algorithm level Ullman's algorithm
    2. Algorithm level VF2 algorithm
  8. Problem level Graph connectivity
    1. Algorithm level Shiloach-Vishkin algorithm for finding the connected components
    2. Algorithm level Disjoint set union
    3. Algorithm level Tarjan's strongly connected components algorithm
    4. Algorithm level DCSC algorithm for finding the strongly connected components
    5. Algorithm level Tarjan's biconnected components algorithm
    6. Algorithm level Tarjan-Vishkin biconnected components algorithm
    7. Algorithm level Tarjan's algorithm for finding the bridges of a graph
    8. Algorithm level Vertex connectivity of a graph
    9. Algorithm level Gabow's edge connectivity algorithm
  9. Problem level Finding maximal flow in a transportation network
    1. Algorithm level Ford–Fulkerson algorithm
    2. Algorithm level Preflow-Push algorithm
  10. Problem level Finding minimal-cost flow in a transportation network
  11. Problem level Assignment problem
    1. Algorithm level Hungarian algorithm
    2. Algorithm level Auction algorithm
    3. Algorithm level Hopcroft–Karp algorithm
  12. Betweenness centrality algorithm

3 Computational geometry

  1. Finding the diameter of a point set
  2. Finding the convex hull of a point set
  3. Delaunay triangulation
  4. Voronoi diagram
  5. Point-in-polygon problem
  6. Convex polygon intersection
  7. Star-shaped polygon intersection

3.1 Computer graphics

  1. Line drawing algorithms: Approximating a line segment on discrete graphical media
  2. Determining visible parts of a three-dimensional scene
  3. Ray tracing: Rendering realistic images
  4. Global illumination: Regarding direct illumination and reflection from other objects

4 Computer analysis and modeling

4.1 Computer benchmarks

  1. Algorithm level High Performance Conjugate Gradient (HPCG) benchmark
  2. Algorithm level Linpack benchmark

4.2 Algorithms of quantum system simulation

  1. Algorithms of quantum computation simulation
    1. Algorithm level Single-qubit transform of a state vector
    2. Algorithm level Two-qubit transform of a state vector
    3. Quantum Fourier transform simulation

4.3 Machine learning algorithms

  1. Algorithm level k-means clustering

4.3.1 Neural networks

  1. Pattern recognition
    1. Text recognition
    2. Speech recognition
    3. Algorithm level Face recognition

4.3.2 Game theory algorithms

5 Miscellaneous applied problems

5.1 Optimization algorithms

  1. Linear programming
  2. Simplex algorithm
  3. Branch and bound method
  4. Genetic algorithms
  5. Ant colony algorithms
  6. Hybrid algorithms
  7. Algorithm level Stochastic dual dynamic programming (SDDP)

5.2 Solving systems of nonlinear equations

  1. Algorithm level Newton's method for systems of nonlinear equations

5.3 Numerical quadrature

  1. Algorithm level Cubature rules
  2. Algorithm level Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)
    1. Rectangle rule
    2. Trapezoid rule
    3. Simpson rule
    4. Gauss rule

5.4 Algorithms for solving equations of mathematical physics

  1. Algorithm level Poisson equation, solving with DFT

6 Cryptographic algorithms

  1. Algorithm level Meet-in-the-middle attack

7 Other algorithms