Chapter 3 References
Chapter 3 References
Books
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms. Chapters 2, 3, 15, and 16 cover divide and conquer, dynamic programming, and greedy algorithms.
- Donald E. Knuth, The Art of Computer Programming, Volume 3: Sorting and Searching. Detailed treatment of sorting, radix methods, and distribution counting.
- Donald E. Knuth, The Art of Computer Programming, Volume 4A: Fundamentals of Algorithmics. Dynamic-programming foundations and state-space analysis.
- Steven C. Van Gundy, The Algorithm Design Manual. Practical tradeoffs among search paradigms and implementation constraints.
- Doug Lea, Java Concurrency in Practice. Mutual exclusion, atomic state, thread safety, and concurrent execution.
- Steve Lavington, The Art of Multiprocessor Programming. Locks, concurrent data structures, and parallel programming models.
- Maurice Herlihy and Nir Shavit, The Art of Multiprocessor Programming. Lock-free programming, memory models, and transactional-memory foundations.
Websites
- Java Platform, Standard Edition API — collections,
CompletableFuture, semaphores, and atomic operations used in the chapter. - Rust Standard Library — atomics, threads, mutexes, condition variables, and future interfaces.
- Go Programming Language Specification and Go Memory Model — goroutines, synchronization, and memory visibility.
- TypeScript Handbook and MDN SharedArrayBuffer — JavaScript execution and shared cross-thread memory.
- Python free-threaded CPython documentation — global-interpreter-lock behavior and free-threaded builds.
- Intel Intrinsics Guide — explicit SIMD instructions, targets, and processor support.
- C and C++ Core Guidelines and C11 atomics reference — concurrency primitives and lock-free design considerations.