This chapter discusses the selection of algorithm design topics.

**Bit-Parallel Algorithms:** focuses on bit-parallel algorithms that use bit operations to efficiently process data. Typically, we can replace a for loop with bit operations, which may remarkably improve the running time of the algorithm.

**Amortized Analysis:** Presents the amortized analysis technique, which can be used to estimate the time needed for a sequence of operations in an algorithm. Using the technique, we can analyze algorithms for determining the nearest smaller elements and sliding window minima.

**Amortized Analysis:** Discusses ternary search and other techniques for efficiently calculating minimum values of certain functions.