Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
The Art of Computer Programming
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Completed=== ====Volume 1 β Fundamental algorithms==== * Chapter 1 β Basic concepts ** 1.1. [[Algorithm]]s ** 1.2. Mathematical preliminaries *** 1.2.1. [[Mathematical induction]] *** 1.2.2. Numbers, powers, and [[logarithm]]s *** 1.2.3. Sums and products *** 1.2.4. Integer functions and elementary [[number theory]] *** 1.2.5. [[Permutation]]s and [[factorial]]s *** 1.2.6. [[Binomial coefficient]]s *** 1.2.7. [[Harmonic number]]s *** 1.2.8. [[Fibonacci number]]s *** 1.2.9. [[Generating function]]s *** 1.2.10. Analysis of an algorithm *** 1.2.11. [[Asymptotic analysis|Asymptotic representations]] **** 1.2.11.1. The [[Big O notation|O-notation]] **** 1.2.11.2. [[Euler's summation formula]] **** 1.2.11.3. Some asymptotic calculations ** 1.3 [[MIX (abstract machine)|MIX]] (Updated with [[MMIX]]<ref>{{cite web |url=https://www-cs-faculty.stanford.edu/~knuth/taocp.html#future |title=Kuth's future editions Volumes 1-3 |access-date=2025-04-25 |archive-date=2025-04-23 |archive-url=https://web.archive.org/web/20250423130634/https://www-cs-faculty.stanford.edu/~knuth/taocp.html#future |url-status=live }}</ref> in Volume 1 fascicle 1) *** 1.3.1. Description of MIX *** 1.3.2. The MIX assembly language *** 1.3.3. Applications to [[permutation]]s ** 1.4. Some fundamental programming techniques *** 1.4.1. [[Function (computer programming)|Subroutines]] *** 1.4.2. [[Coroutine]]s *** 1.4.3. Interpretive routines **** 1.4.3.1. A MIX simulator **** 1.4.3.2. Trace routines *** 1.4.4. [[Input/output|Input and output]] *** 1.4.5. History and bibliography * Chapter 2 β Information structures ** 2.1. Introduction ** 2.2. [[List (abstract data type)|Linear lists]] *** 2.2.1. [[Stack (abstract data type)|Stacks]], [[Queue (abstract data type)|queues]], and [[Double-ended queue|deques]] *** 2.2.2. Sequential allocation *** 2.2.3. Linked allocation ([[topological sorting]]) *** 2.2.4. Circular lists *** 2.2.5. Doubly linked lists *** 2.2.6. [[Array (data structure)|Arrays]] and orthogonal lists ** 2.3. [[Tree (data structure)|Trees]] *** 2.3.1. Traversing [[binary tree]]s *** 2.3.2. Binary tree representation of trees *** 2.3.3. Other representations of trees *** 2.3.4. Basic mathematical properties of trees **** 2.3.4.1. Free trees **** 2.3.4.2. [[Polytree|Oriented trees]] **** 2.3.4.3. [[KΕnig's lemma|The "infinity lemma"]] **** 2.3.4.4. Enumeration of trees **** 2.3.4.5. Path length **** 2.3.4.6. History and bibliography *** 2.3.5. Lists and [[Garbage collection (computer science)|garbage collection]] ** 2.4. Multilinked structures ** 2.5. [[Dynamic memory allocation|Dynamic storage allocation]] ** 2.6. History and bibliography ====Volume 2 β Seminumerical algorithms==== * Chapter 3 β [[Random number]]s ** 3.1. Introduction ** 3.2. [[Pseudo-random number generator|Generating uniform random numbers]] *** 3.2.1. The [[Linear congruential generator|linear congruential]] method **** 3.2.1.1. Choice of modulus **** 3.2.1.2. Choice of multiplier **** 3.2.1.3. Potency *** 3.2.2. Other methods ** 3.3. Statistical tests *** 3.3.1. General test procedures for studying random data *** 3.3.2. Empirical tests *** 3.3.3. Theoretical tests *** 3.3.4. The spectral test ** 3.4. [[Pseudo-random number sampling|Other types of random quantities]] *** 3.4.1. Numerical distributions *** 3.4.2. Random sampling and [[FisherβYates shuffle|shuffling]] ** 3.5. What Is a [[Random Sequence|random sequence]]? ** 3.6. Summary * Chapter 4 β Arithmetic ** 4.1. [[Positional notation|Positional number systems]] ** 4.2. [[Floating point]] arithmetic *** 4.2.1. Single-precision calculations *** 4.2.2. Accuracy of floating point arithmetic *** 4.2.3. Double-precision calculations *** 4.2.4. Distribution of floating point numbers ** 4.3. [[Arbitrary-precision arithmetic|Multiple precision arithmetic]] *** 4.3.1. The classical algorithms *** 4.3.2. Modular arithmetic *** 4.3.3. How fast can we multiply? ** 4.4. [[Radix]] conversion ** 4.5. [[Rational number|Rational]] arithmetic *** 4.5.1. Fractions *** 4.5.2. The greatest common divisor *** 4.5.3. Analysis of [[Euclidean algorithm|Euclid's algorithm]] *** 4.5.4. Factoring into primes ** 4.6. [[Polynomial]] arithmetic *** 4.6.1. Division of polynomials *** 4.6.2. Factorization of polynomials *** 4.6.3. Evaluation of powers ([[addition-chain exponentiation]]) *** 4.6.4. Evaluation of polynomials ** 4.7. Manipulation of [[Power Series|power series]] ====Volume 3 β Sorting and searching==== * Chapter 5 β [[Sorting algorithm|Sorting]] ** 5.1. Combinatorial properties of [[permutation]]s *** 5.1.1. Inversions *** 5.1.2. Permutations of a multiset *** 5.1.3. Runs *** 5.1.4. Tableaux and involutions ** 5.2. [[Internal sort]]ing *** 5.2.1. Sorting by insertion *** 5.2.2. Sorting by exchanging *** 5.2.3. Sorting by selection *** 5.2.4. Sorting by merging *** 5.2.5. Sorting by distribution ** 5.3. Optimum sorting *** 5.3.1. Minimum-comparison sorting *** 5.3.2. Minimum-comparison merging *** 5.3.3. Minimum-comparison selection *** 5.3.4. Networks for sorting ** 5.4. [[External Sorting|External sorting]] *** 5.4.1. Multiway merging and replacement selection *** 5.4.2. The polyphase merge *** 5.4.3. The cascade merge *** 5.4.4. Reading tape backwards *** 5.4.5. The oscillating sort *** 5.4.6. Practical considerations for tape merging *** 5.4.7. External radix sorting *** 5.4.8. Two-tape sorting *** 5.4.9. Disks and drums ** 5.5. Summary, history, and bibliography * Chapter 6 β [[Search algorithm|Searching]] ** 6.1. Sequential searching ** 6.2. Searching by comparison of [[Unique key|keys]] *** 6.2.1. Searching an ordered table *** 6.2.2. Binary tree searching *** 6.2.3. Balanced trees *** 6.2.4. Multiway trees ** 6.3. Digital searching ** 6.4. [[Hash table|Hashing]] ** 6.5. Retrieval on secondary keys ====Volume 4A β Combinatorial algorithms, Part 1==== * Chapter 7 β Combinatorial searching ** 7.1. [[Binary numeral system|Zeros and ones]] *** 7.1.1. [[Two-element Boolean algebra|Boolean]] basics *** 7.1.2. Boolean evaluation *** 7.1.3. [[Bitwise operation|Bitwise]] tricks and techniques *** 7.1.4. [[Binary decision diagram]]s ** 7.2. Generating all possibilities *** 7.2.1. Generating basic combinatorial patterns **** 7.2.1.1. Generating all ''n''-[[tuple]]s **** 7.2.1.2. Generating all [[permutation]]s **** 7.2.1.3. Generating all [[combination]]s **** 7.2.1.4. Generating all [[integer partition]]s **** 7.2.1.5. Generating all [[Partition of a set|set partitions]] **** 7.2.1.6. Generating all [[tree (graph theory)|trees]] **** 7.2.1.7. History and further references ====Volume 4B β Combinatorial algorithms, Part 2==== * Chapter 7 β Combinatorial searching (continued) ** 7.2. Generating all possibilities (continued) *** 7.2.2. [[Backtracking|Backtrack programming]] **** 7.2.2.1. [[Dancing links]] (includes discussion of [[exact cover]]) **** 7.2.2.2. [[Satisfiability]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)