mixed integer linear program mode model checking model of computation moderately exponential MODIFIND monotone priority queue monotonically decreasing monotonically increasing Monte Carlo algorithm Moore machine Morris–Pratt move (finite-state machine transition) move-to-front heuristic move-to-root heuristic multi-commodity flow multigraph multilayer grid file multiplication method multiprefix multiprocessor model multiset multi suffix tree multiway decision multiway merge multiway search tree multiway tree Munkres' assignment algorithm N naive string search nand n-ary function NC NC many-one reducibility nearest neighbor search negation network flow (see flow network) network flow problem next state NIST node nonbalanced merge nonbalanced merge sort nondeterministic nondeterministic algorithm nondeterministic finite automaton nondeterministic finite-state machine (NFA) nondeterministic finite tree automaton (NFTA) nondeterministic polynomial time nondeterministic tree automaton nondeterministic Turing machine nonterminal node nor not Not So Naive NP NP-complete NP-complete language NP-hard n queens nullary function null tree New York State Identification and Intelligence System (NYSIIS) O objective function occurrence octree odd–even sort offline algorithm offset (computer science) omega omicron one-based indexing one-dimensional online algorithm open addressing optimal optimal cost optimal hashing optimal merge optimal mismatch optimal polygon triangulation problem optimal polyphase merge optimal polyphase merge sort optimal solution optimal triangulation problem optimal value optimization problem or oracle set oracle tape oracle Turing machine orders of approximation ordered array ordered binary decision diagram (OBDD) ordered linked list ordered tree order preserving hash order preserving minimal perfect hashing oriented acyclic graph oriented graph oriented tree orthogonal drawing orthogonal lists orthogonally convex rectilinear polygon oscillating merge sort out-branching out-degree overlapping subproblems P packing (see set packing) padding argument pagoda pairing heap PAM (point access method) parallel computation thesis parallel prefix computation parallel random-access machine (PRAM) parametric searching parent partial function partially decidable problem partially dynamic graph problem partially ordered set partially persistent data structure partial order partial recursive function partition (set theory) passive data structure patience sorting path (graph theory) path cover path system problem Patricia tree pattern pattern element P-complete PCP Peano curve Pearson's hashing perfect binary tree perfect hashing perfect k-ary tree perfect matching perfect shuffle performance guarantee performance ratio permutation persistent data structure phonetic coding pile (data structure) pipelined divide and conquer planar graph planarization planar straight-line graph PLOP-hashing point access method pointer jumping pointer machine poissonization polychotomy polyhedron polylogarithmic polynomial polynomial-time approximation scheme (PTAS) polynomial hierarchy polynomial time polynomial-time Church–Turing thesis polynomial-time reduction polyphase merge polyphase merge sort polytope poset postfix traversal Post machine (see Post–Turing machine) postman's sort postorder traversal