A tag is a keyword or label that categorizes your question with other, similar questions. Using the right tags makes it easier for others to find and answer your question.
An algorithm is a sequence of well-defined steps that defines an abstract solution to a problem. Use this tag when your issue is related to design and analysis of algorithms.
Questions related to the (computational) complexity of solving problems
Questions about graphs, discrete structures of nodes which are connected by edges, including trees and graphs with weighted edges.
Questions related to formal languages, grammars, and automata theory
The amount of time resources (number of atomic operations or machine steps) required to solve a problem expressed in terms of input size. If your question concerns algorithm analysis, use the [runti…
Questions about Turing machines, a theoretical model of mechanical computation capable of simulating any computer program.
Questions about ways of storing data so that it can be used advantageously by algorithms.
Questions related to computability theory, a.k.a. recursion theory
Questions about the science and art of determining properties of algorithms, often including correctness, runtime and space usage. Use the [runtime-analysis] tag for questions about the runtime of al…
Questions about properties of the class of regular languages and individual languages.
Questions about mathematical devices that read an input stream symbol by symbol and use a state transition map to produce an output stream, maybe using secondary storage.
Questions about problems that entail selecting the best element from some set of available alternatives, and methods to solve them.
Questions about finite automata, an elementary automaton model with finite memory. It is equivalent to regular languages and the basis for many more complex models.
Questions about the set of languages (equivalently) described by context-free grammars or accepted by (non-deterministic) pushdown automata.
Questions about the hardest problems in NP, i.e. of those that can be solved in polynomial time by nondeterministic Turing machines.
Questions about asymptotic notations and analysis
Questions about formal grammars, generative descriptions of formal languages.
In computability and complexity, finding mappings between problems that allow solving one problem using a solution of another one. For reduction in programming language theory (e.g. beta-reduction), s…
Questions about computer algorithms that automatically discover patterns in data and make good decisions based on them.
Questions about how specific notions have to be understood as well as conventions of notation.
Questions about the organization and design of computer hardware.
Questions about methods for estimating the increase in runtime of an algorithm as the input size increases.
Questions requesting papers in the literature on specific, narrow issues.
Questions related to design, implementation, and analysis of programming languages. NOT for questions about how to program, which are off-topic on this site.
Questions related to mathematical logic and its use in computer science
Questions about problems that can be solved by combining recursively obtained solutions of subproblems.
the algorithmic problem of ordering a set of elements with respect to some ordering relation.
Questions about problems which cannot be solved by any Turing machine.
Questions about algorithmic solutions of geometric problems, or other algorithms making usage of geometry.
Questions about a special kind of graphs, namely connected and cycle-free ones.
Questions about regular expressions, a formalism to describe regular languages.
decision problems that are at least as hard as NP-complete problems
Questions related to combinatorics and discrete mathematical structures
Questions about the principles of software that interfaces between hardware and applications.
Questions about decision problems that can be solved on nondeterministic Turing machines in time polynomial in the length of the input.
a definition of a sequence where later elements are expressed as a function of earlier elements.