- Ackermann's function: History of the function and (Modula-2) code, (Lisp), (Pascal), (Miranda).
- acyclic directed graph: comb sort parallel (Java).
- adaptive Huffman encoding: (C)
- algorithm B: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- approximate string matching: See implementations at string matching. (C and Pascal)
- arc: Illustrations, too (C++)
- arithmetic coding: Theory development and implementation (C).
- array: (C), Read and write different arrays (Fortran, C++)
- articulation point: analysis, explanation, and code (C), and (C).
- association list: (C++, Pascal, and Fortran), Kazlib (C)
- AVL tree: (C++), explanations and code (C), (Java) needs insert, delete, search, etc. from the functions directory, Worst-case behavior of traversal, annotated for real time (WOOP/ADA).
- balanced binary tree: AVL tree explanation and example, red-black tree analysis, explanation, examples, and code (C), AVL tree explanation (C)
- balanced merge sort: (C) using an auxiliary function to select next file (C), (Java)
- balanced multiway tree: data structure definition (C and Pascal), insert (C and Pascal) using auxiliary functions (C and Pascal), search (C and Pascal), (Pick Basic?).
- BB
tree: Worst-case behavior of traversal, annotated for real time (WOOP/ADA), including bibliography.
- bidirectional bubble sort: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- binary insertion sort: (C)
- binary priority queue: insert (C and Pascal) and delete (C and Pascal)
- binary search: search (C), Worst-case behavior annotated for real time (WOOP/ADA), including bibliography.
- binary search tree: insert, search, and maximum (Pascal), insert (C), insert (Lisp), insert (C and Pascal), search (C and Pascal), and insert, search, delete, and various traversals (Modula-2).
- binary tree: examples, analysis, and C code, Worst-case behavior of traversal, annotated for real time (WOOP/ADA).
- binomial queue: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- bin packing: (C++)
- bin sort: analysis, explanation, and code (C), and (C).
- block search: Information on Permutations (Pascal and C)
- Boyer-Moore: (C) which uses Boyer-Moore preprocessing (C)
- Boyer-Moore-Horspool: (C and Pascal)
- B+-tree: A B+-tree package (b+tree_mjr), with patches (b+tree), was posted on comp.sources.misc, volume 10. There is also the bplus package.
- branch and bound: A page of branch and bound implementations (C, C++, Matlab, Fortran, executables, etc.).
- breadth first search: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- brick sort: Sedgewick's Analysis of Shellsort and Related Algorithms (C)
- brute force string search: (C and Pascal)
- brute force string search with mismatches: (C and Pascal)
- B*-tree: data structure definition (C and Pascal), B-tree insert (C and Pascal) using auxiliary functions (C and Pascal), B-tree search (C and Pascal).
- B-tree: data structure definition (C and Pascal), insert (C and Pascal) using auxiliary functions (C and Pascal), search (C and Pascal), (Pick Basic?).
- bubble sort: animation and code (Java), sinking sort explanation and animation (Java) demonstration and source code (Java) - but code might not render properly, (Java).
- bucket sort: analysis, explanation, and code (C), and (C).
- Byzantine Agreement Problem: analysis, explanation, and code (C), and (C).
- calendar queue: (Java), in a simulation tool package (C)
- cartesian tree: Oleg Kiselyov's (Scheme)
- Cayley-Purser: explanation, proofs, comparison with RSA, how it can be broken, and code (Mathematica)
- chaining: (C)
- Chinese postman problem: (Mathematica and Fortran)
- Christofides heuristic: analysis, explanation, and code (C), and (C).
- clique problem: (Fortran, C, and Mathematica)
- coalesced hashing: insert (C), search (C).
- cocktail shaker sort: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- combination: The Combinatorial Object Server's information on Combinations (Pascal and C)
- comb sort: comb sort parallel (Java).
- configuration: (Java). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting; (Fortran).
- connected component: (C++, C, Pascal, Mathematica, and Fortran)
- continuous knapsack problem: Oleg Kiselyov's program to minimize a finite state machine (Prolog)
- CRC: analysis, explanation, and code (C), and (C).
- CRCW: analysis, explanation, and code (C), and (C).
- CREW: analysis, explanation, and code (C), and (C).
- cutting stock problem: linear and nonlinear programming and algebra packages (C and Fortran)
- cycle: graph cycle detector (C)
- DAG: comb sort parallel (Java).
- database: (C++, Pascal, and Fortran), Kazlib (C)
- DAWG: comb sort parallel (Java).
- decimation: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- depth first search: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- derangement: The (Combinatorial) Object Server's information on Derangements (Pascal and C)
- deterministic finite automata string search: description and animation (C), (C) which uses a finite automaton structure (C) and builds a recognizer (C)
- deterministic finite automaton: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- DFA: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- DFS: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- DFTA: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- dictionary: (C++, Pascal, and Fortran), Kazlib (C)
- diet: insert, delete, and member (ML), insert, delete, and member (Haskell)
- digraph: comb sort parallel (Java).
- Dijkstra's algorithm: An analysis with code (C)
- diminishing increment sort: comb sort parallel (Java).
- dining philosophers: code Shared Memory and Semaphores (C and C++), (Java), (Siefast)
- direct chaining hashing: insert (C), search (C).
- directory: (C++, Pascal, and Fortran), Kazlib (C)
- discrete interval encoding tree: insert, delete, and member (ML), insert, delete, and member (Haskell)
- divide and conquer: how many odd numbers in an array? (C)
- Doomsday rule: (Mathematica)
- double-direction bubble sort: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- double hashing: insert (C and Pascal), search (C and Pascal)
- double metaphone: Metaphone and double metaphone (Basic, C, Perl, and C++), zip'd (C++)
- doubly-ended queue: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- doubly linked list: Illustrations, too (C++)
- DPDA: (Lisp), (Prolog), (Java) which extends SearchApplet (Java), (C++)
- Dutch national flag: explanation and development (C)
- dynamic programming: Oleg Kiselyov's program to optimally lay out a page (C++) using dynamic programming.
- edge coloring: (C++, Mathematica, and C)
- edge connectivity: (Mathematica, C, and Pascal)
- edit distance: Levenshtein distance (Java, C++, Visual Basic)
- enfilade: Green (C)
- ERCW: (Mathematica and Fortran)
- EREW: (Mathematica and Fortran)
- Euclidean algorithm: Worst-case behavior annotated for real time (WOOP/ADA).
- Euclid's algorithm: Worst-case behavior annotated for real time (WOOP/ADA).
- Euler cycle: (Mathematica and Fortran)
- Eulerian path: (Mathematica and Fortran)
- exact string matching: (C++ and Pascal), Strmat (C) - a collection of string matching and pattern discovery programs, (Fortran), (Fortran).
- exchange sort: animation and code (Java), sinking sort explanation and animation (Java) demonstration and source code (Java) - but code might not render properly, (Java).
- exclusive or: Jano Simicka's Vehicle Routing Problem page has links to papers, sample problems, implementations, etc.
- extendible hashing: A description including a hash function (COBOL).
- external node: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- external quicksort: (C)
- extrapolation search: Worst-case behavior annotated for real time (WOOP/ADA), including bibliography, (Pascal)
- factor: See implementations at string matching. (C and Pascal)
- fast fourier transform: Worst-case behavior annotated for real time (WOOP/ADA).
- feedback edge: (C)
- FFT: Worst-case behavior annotated for real time (WOOP/ADA).
- Fibonacci number: Worst-case behavior to generate nth number, annotated for real time (WOOP/ADA).
- Fibonacci search: Worst-case behavior annotated for real time (WOOP/ADA), including bibliography.
- FIFO: (Java)
- Find: analysis and comparison (Rexx)
- find kth smallest element: (C and Pascal)
- finite state automaton: Oleg Kiselyov's program to minimize a finite state machine (Prolog)
- finite state machine: Oleg Kiselyov's program to minimize a finite state machine (Prolog)
- finite state machine minimization: (C++ and Pascal)
- formal language: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- GCD: Oleg Kiselyov's program to minimize a finite state machine (Prolog)
- graph: GraphEd -- Graph Editor and Layout Program (C), graph manipulation (C++, C, Mathematica, and Pascal), graph generating (C, Mathematica, Pascal, C++, and Fortran)
- graph drawing: Links to graph drawing packages (Java, C, etc.), draw a graph nicely (C and Mathematica), draw a graph in the plane such that no edges cross (C, C++, and Mathematica), GraphEd: Graph Editor and Layout Program (C).
- graph isomorphism: (C and Mathematica)
- graph partition: (C++)
- Gray code: Glenn Rhoads' Snippets (c). binary-to-Gray and Gray-to-binary conversion (C) with history, references, and application to genetic algorithms. convert between binary Gray (C): a PDF document of section 20.2 of Numerical recipes in C.
- Grover's algorithm: (C-like)
- Hamiltonian cycle: (Fortran, C, Mathematica, and C++)
- hash: See the implementations at minimal perfect hashing (C++ and C) and Pearson's hash (C). A review and comparison of many integer hash functions (C). Hash functions for strings (C), strings (C and Perl), Kazlib (C)
- hash table: chaining: (C), linear probing hashing: insert (C), look up (C), Kazlib (C)
- heap: delete (C) and insert (C and Pascal) both of which use the auxiliary function siftup (C and Pascal), (C++), explanation, examples, and C code, (Fortran)
- heapify: Called FilterDown (C++)
- heapsort: (Java), (Java), (C++), Worst-case behavior annotated for real time (WOOP/ADA), including bibliography.
- heaviest common subsequence: (C and Mathematica)
- Herter-Heighway Dragon: Illustrations, too (C++)
- HMM: (Fortran, C, Mathematica, and C++)
- Horspool: (C and Pascal)
- Huffman encoding: animation which counts characters, finds the code, encodes, and decodes (Java), n-ary Huffman encoding (C++).
- ID: (Java). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting; (Fortran).
- in-branching: (C and Pascal)
- inclusive or: (C++, Pascal, Fortran, C, and Mathematica)
- independent set: (Fortran and C)
- insertion sort: (Java). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting; (Fortran).
- internal sort: (Fortran)
- interpolation search: Worst-case behavior annotated for real time (WOOP/ADA), including bibliography, (Pascal)
- interpolation-sequential search: (Pascal) or (Pascal)
- interpolation sort: (C and Pascal)
- introsort: Worst-case behavior annotated for real time (WOOP/ADA), including bibliography, (Pascal)
- isomorphic: (C and Mathematica)
- Johnson-Trotter: Information on Permutations (Pascal and C)
- j sort: demonstration and source code (Java).
- Karmarkar's algorithm: Article with details of implementation and comparisons (Algol-like pseudo-code)
- Karnaugh map: (Java)
- Karp-Rabin: description and animation (C), (C and Pascal), (Pascal)
- k-ary Huffman encoding: animation which counts characters, finds the code, encodes, and decodes (Java), n-ary Huffman Template algorithm (C++) including tests.
- k-d tree: C, Pascal, or FORTRAN, insert (C), range search (C), and search (C). (C, Pascal, and Fortran)
- KMP: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- knapsack problem: (Fortran and Pascal)
- knight's tour: Oleg Kiselyov's derivation (Prolog)
- Knuth-Morris-Pratt algorithm: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- Königsberg bridges problem: (Mathematica and Fortran)
- Kruskal's algorithm: analysis and code (C), (pseudocode)
- kth shortest path: Víctor Jiménez and Andrés Marzal keep links to algorithms and code (C).
- kth smallest element: (C and Pascal)
- KV diagram: (Java)
- k-way tree: description and animation (C), (C and Pascal), (Pascal)
- LCM: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- LCS: (C and Mathematica)
- leftist tree: merge and delete (C and Pascal) which use distance (C and Pascal), insert (C and Pascal)
- left rotation: (Pascal), (C and Pascal)
- Lempel-Ziv-Welch: explanation (C)
- Levenshtein distance: Levenshtein distance (Java, C++, Visual Basic)
- LIFO: (C, C++, Pascal, Fortran, and Mathematica)
- linear insertion sort: (Java). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting; (Fortran).
- linear order: papers, demos, and code (C)
- linear probing: insert (C), search (C).
- linear probing sort: (C and Pascal)
- linear quadtree: Spatial Linear Quadtree with Constant Time Node Traversal (C++) including man pages, examples, etc.
- linear search: C
- linked list: explanations, examples, iterators, sorting lists, etc. (C++), Kazlib (C)
- longest common subsequence: (C and Mathematica)
- longest common substring: (C and Mathematica)
- lower triangular matrix: (Fortran)
- LZW compression: explanation (C)
- Markov chain: Use Markov chains to generate random text (clisp) and in (C).
- matching: (Fortran, C, C++, and Pascal)
- matrix: (Fortran), (C++)
- maximum bipartite matching: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- maximum-flow problem: description and links to implementations (C, Fortran, C++, Pascal, and Mathematica)
- MBB: demonstration (Java); recurrence relation analysis and demonstration (Java); (C) which needs list merge (C) or array merge (C), (Pascal)which needs list merge (Pascal) or array merge (Pascal); (Java); Demo and code of in-place and double merge sort (Java); Worst-case behavior annotated for real time (WOOP/ADA), including bibliography. Sohail Somani's (C++). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting.
- median: find median (Pascal and C++)
- merge sort: demonstration (Java); recurrence relation analysis and demonstration (Java); (C) which needs list merge (C) or array merge (C), (Pascal)which needs list merge (Pascal) or array merge (Pascal); (Java); Demo and code of in-place and double merge sort (Java); Worst-case behavior annotated for real time (WOOP/ADA), including bibliography. Sohail Somani's (C++). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting.
- metaphone: Metaphone and double metaphone (Basic, C, Perl, and C++), double metaphone, zip'd (C++), (C, Basic), (Java), (Java).
- Miller-Rabin: Frederic Raynal's Miller-Rabin Primality test (pseudo-code) pages, with mathematical background, implementation, demonstration, etc.
- minimal perfect hashing: Description and code for minimal perfect hashing (C), mph: minimal perfect hash function generator (C), gperf: near minimal perfect hashing (C++),
- minimum cost spanning tree: (C++, Pascal, Fortran, C, and Mathematica)
- minimum spanning tree: (C++, Pascal, Fortran, C, and Mathematica)
- model checking: The SMV model checker.
- MODIFIND: analysis and comparison (Rexx)
- move: papers, demos, and code (C)
- MST: (C++, Pascal, Fortran, C, and Mathematica)
- naive string search: (C and Pascal)
- nearest neighbor search: (C, C++, and Pascal)
- network flow: Oleg Kiselyov's program to minimize a finite state machine (Prolog)
- network flow problem: description and links to implementations (C, Fortran, C++, Pascal, and Mathematica)
- NFA: (C++, Pascal, Fortran, C, and Mathematica)
- NFTA: (C++, Pascal, Fortran, C, and Mathematica)
- nondeterministic finite automaton: (C++, Pascal, Fortran, C, and Mathematica)
- nondeterministic polynomial time: (C++, Pascal, Fortran, C, and Mathematica)
- nonterminal node: (Java). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting; (Fortran).
- NP-complete: Stas Busygin's NP-Completeness Page with QUALEX and SAT01 (C++).
- nullary function: Jano Simicka's Vehicle Routing Problem page has links to papers, sample problems, implementations, etc.
- O: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- optimal hashing: See the implementations at minimal perfect hashing (C++, C), insert (C), search (C).
- optimization problem: linear and nonlinear programming and algebra packages (C and Fortran) from the Optimization Technology Center.
- ordered binary decision diagram: (C++, Pascal, Fortran, C, and Mathematica)
- oriented acyclic graph: comb sort parallel (Java).
- oriented graph: comb sort parallel (Java).
- oscillating merge sort: (Pascal)
- pagoda: delete (C and Pascal), insert (C and Pascal), and merge (C and Pascal)
- PAM: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- partially ordered set: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- partition: generating partitions (Fortran, Mathematica, Pascal, and C)
- Patricia tree: insert (C), search (C).
- PCP: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- PDA: (C++, C, and Fortran), Glenn Rhoads' Snippets (c), (C)
- Peano curve: (Maple)
- Pearson's hash: (C)
- perfect hashing: See the implementations at minimal perfect hashing (C++, C), insert (C), search (C).
- performance ratio: analysis, explanation, examples, and code (C), Ben Pfaff's libavl (C) including pointers to other implementations, Kazlib (C).
- permutation: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- planar graph: draw a graph in the plane such that no edges cross (C, C++, and Mathematica)
- polyphase merge sort: (C) using an auxiliary function to select next file (C)
- postfix traversal: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- postman's sort: 16- and 32-bit binaries for DOS, OS/2, and Windows
- PRAM: (C++, Pascal, Fortran, C, and Mathematica)
- prefix sums: (C and Pascal)
- prefix traversal: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- Prim's algorithm: explanation and implementation (pseudocode and Java bytecode)
- priority queue: links to implementations, dozens of papers, introductory material, etc. Implemented as a heap: insert, delete, etc. (Modula-2?) (C++, Pascal, and Fortran), (C++)
- PRNG: (C++, C, and Fortran), Glenn Rhoads' Snippets (c), (C)
- property list: (C++, Pascal, and Fortran), Kazlib (C)
- pseudo-random number generator: (C++, C, and Fortran), Glenn Rhoads' Snippets (c), (C)
- PTAS: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- pth order Fibonacci numbers: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- P-tree: Implementations of P-tree (1) insert (C and Pascal), delete max (C and Pascal), and head (C and Pascal)
- p-way merge sort: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- qm sort: demonstration and source code (Java).
- q sort: demonstration and source code (Java).
- quadratic probing: insert (C and Pascal)
- quadtree: Spatial Linear Quadtree with Constant Time Node Traversal (C++) including man pages, examples, etc., insert (C), search (C), for an image (C), bitmap utilities (C).
- quad trie: insert (C), search (C)
- queue: (Java)
- quicksort: animation and code (Java); demos and code for enhanced, fast, quicksort, and quicksort with bubble sort (Java); (Java).
- Rabin-Karp: description and animation (C), (C and Pascal), (Pascal)
- radix quicksort: papers, demos, and code (C)
- radix sort: Explanation and code (Pascal); (C and Pascal); analysis, explanation, and code (C); tutorial with examples and code (C++).
- randomized binary search tree: Oleg Kiselyov's (Scheme)
- Ratcliff/Obershelp pattern recognition: (C)
- RBST: Oleg Kiselyov's (Scheme)
- rebalance: (Pascal)
- rectangular matrix: (Fortran)
- recurrence equations: Oleg Kiselyov's (Scheme)
- red-black tree: analysis, explanation, examples, and code (C), Ben Pfaff's libavl (C) including pointers to other implementations, Kazlib (C).
- rehashing: insert (C and Pascal), search (C and Pascal)
- right rotation: (C and Pascal)
- right-threaded tree: text book and code (C)
- RNG: Oleg Kiselyov's (Scheme)
- ROBDD: analysis, explanation, examples, and code (C), Ben Pfaff's libavl (C) including pointers to other implementations, Kazlib (C).
- rotate left: (Pascal), (C and Pascal)
- rotate right: (C and Pascal)
- saguaro stack: analysis, explanation, and code (C), and (C).
- SAM: (C, C++, Pascal, Fortran, and Mathematica)
- select and partition: analysis and comparison (Rexx)
- selection problem: (C and Pascal)
- selection sort: animation and code (Java).
- select mode: (Pascal)
- self-organizing sequential search: C
- separate chaining hashing: insert (C), search (C).
- sequential search: C
- set: (C++ and Pascal)
- set cover: (Pascal)
- set packing: (Pascal)
- shaker sort: animation and code (Java); demonstration and source code (Java); animation and code, see cocktail sort (Java).
- Shell sort: demonstration (Java); Sedgewick's Analysis of Shellsort and Related Algorithms (C); Worst-case behavior annotated for real time (WOOP/ADA), including bibliography; demonstration and source code (Java).
- Shift-Or: explanation and code (C)
- shortcutting: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- shortest common supersequence: (C)
- shortest path: (C, C++, Pascal, Fortran, and Mathematica)
- shortest spanning tree: (C++, Pascal, Fortran, C, and Mathematica)
- shuffle: The (Combinatorial) Object Server's information on Permutations (Pascal and C); Michael Gilleland's Permutation Generator (Java); Glenn Rhoads' Snippets (c); (Pascal, Fortran, Mathematica, and C); (Fortran).
- sieve of Eratosthenes: various implementations (C, Perl, and Java), (Perl), (java), (F), (CafeOBJ), Stockton's Pascal Maths Page gives links to three implementations: bit array (Pascal), bit array for odd numbers (Pascal), packed bit array for odd numbers (Pascal)
- Simon's algorithm: In Christian Charras' and Thierry Lecroq's Exact String Matching Algorithms preprocessing phase (C)
- single-destination shortest-path problem: See implementations at graph.
- single-pair shortest-path problem: (C, C++, Pascal, Fortran, and Mathematica)
- single-source shortest-path problem: See implementations at graph.
- singly linked list: explanations, examples, iterators, sorting lists, etc. (C++), Kazlib (C)
- sinking sort: animation and code (Java), sinking sort explanation and animation (Java) demonstration and source code (Java) - but code might not render properly, (Java).
- skip list: (C)
- Smith algorithm: visualization and code (C)
- sort: Specific implementations can be found under the specific sort routines or at (Pascal, C++, Fortran, and Mathematica); Explanation, demo and code (Java).
- sorted array: Insert (C).
- sorted list: insert (C and Pascal)
- sort in place: animation which counts characters, finds the code, encodes, and decodes (Java), n-ary Huffman encoding (C++).
- sort merge: demonstration (Java); recurrence relation analysis and demonstration (Java); (C) which needs list merge (C) or array merge (C), (Pascal)which needs list merge (Pascal) or array merge (Pascal); (Java); Demo and code of in-place and double merge sort (Java); Worst-case behavior annotated for real time (WOOP/ADA), including bibliography. Sohail Somani's (C++). Other implementations may be available through the Stony Brook Algorithm Repository, Sorting.
- soundex: (C), embedded in page source (JavaScript)
- spaghetti stack: analysis, explanation, and code (C), and (C).
- sparse matrix: Input/output for sparse matrices stored in Harwell-Boeing Format (C)
- splay tree: (C)
- SPMD: (C, C++, Pascal, Fortran, and Mathematica)
- SST: (C++, Pascal, Fortran, C, and Mathematica)
- state transition: papers, demos, and code (C)
- static Huffman encoding: animation which counts characters, finds the code, encodes, and decodes (Java), n-ary Huffman encoding (C++).
- Steiner tree: (C and Pascal)
- Steinhaus-Johnson-Trotter: Information on Permutations (Pascal and C)
- stooge sort: demonstration and source code (Java).
- string matching: (C++ and Pascal), Strmat (C) - a collection of string matching and pattern discovery programs, (Fortran), (Fortran).
- string matching with errors: See implementations at string matching. (C and Pascal)
- string searching: (C++ and Pascal), Strmat (C) - a collection of string matching and pattern discovery programs, (Fortran), (Fortran).
- subset: The Combinatorial Object Server's information on subsets (Pascal and C); generating subsets (Fortran, Mathematica, and Pascal)
- suffix tree: Strmat - a variety of string matching and pattern discovery algorithms (C) (C++ and Pascal), generate random text (clisp) and in (C).
- symmetrically linked list: Illustrations, too (C++)
- symmetric binary B-tree: analysis, explanation, examples, and code (C), Ben Pfaff's libavl (C) including pointers to other implementations, Kazlib (C).
- temporal logic: The SMV model checker.
- terminal node: (C and Pascal) which uses Boyer-Moore preprocessing (C)
- ternary search tree: papers, demos, and code (C), (C).
- text searching: (C++ and Pascal), Strmat (C) - a collection of string matching and pattern discovery programs, (Fortran), (Fortran).
- theta: papers, demos, and code (C), (C).
- threaded binary tree: Explanations and code (C)
- threaded tree: Explanations and code (C)
- three-way radix quicksort: papers, demos, and code (C)
- top-down radix sort: (C and Pascal)
- topological sort: (C++, Mathematica, C, and Pascal)
- totally decidable problem: analysis, explanation, and code (C), and (C).
- tour: (Fortran, C, Mathematica, and C++)
- tournament: Forbes D. Lewis' essay on Order Statistics and Tournaments (C).
- towers of Hanoi: (JavaScript)
- transitive closure: on a graph (C++ and Mathematica)
- transitive reduction: on a graph (C++ and Mathematica)
- transpose sequential search: C
- traveling salesman: Links to software as well as papers, preprints, reports, etc., on-line on this and related problems, solver packages (C) in addition to a pictorial history, papers, and an annotated bibliography, (C, Fortran, Pascal, Mathematica, and C++).
- treap: Oleg Kiselyov's (Scheme)
- tree automaton: (ELAN)
- tree sort: (C)
- trie: insert (C), search (C)
- TSP: Links to software as well as papers, preprints, reports, etc., on-line on this and related problems, solver packages (C) in addition to a pictorial history, papers, and an annotated bibliography, (C, Fortran, Pascal, Mathematica, and C++).
- TST: papers, demos, and code (C), (C).
- two-way linked list: Illustrations, too (C++)
- union of automata: (C)
- upper triangular matrix: (Fortran)
- Van Emde-Boas priority queue: insert (Pascal)
- vehicle routing problem: Jano Simicka's Vehicle Routing Problem page has links to papers, sample problems, implementations, etc.
- Veitch diagram: (Java)
- Venn diagram: program to display Venn diagrams (.exe, etc.)
- vertex coloring: (Fortran, C, Pascal, C++, and Mathematica)
- vertex connectivity: (Mathematica, C, and Pascal)
- vertex cover: (C, Fortran, and Mathematica)
- vertex set: (C)
- VRP: Jano Simicka's Vehicle Routing Problem page has links to papers, sample problems, implementations, etc.
- weak-heap sort: (C)
- weight-balanced tree: insert (C and Pascal) and delete (C and Pascal) which use check root (C and Pascal) (or this one or this one?), left rotation (C and Pascal), and right rotation (C and Pascal).
- Yule distribution: Jano Simicka's Vehicle Routing Problem page has links to papers, sample problems, implementations, etc.
- 0-1 knapsack: (Fortran and Pascal)
- Zhu-Takaoka: explanation, animation, and example (C)
|