P: 362. Techniques for analyzing and comparing algorithms. Average case analysis in sorting and searching; dynamic programming: greedy algorithms, amortized analysis, and applications; matrix algorithms: polynomials, discrete Fourier transforms, and fast Fourier transforms; parallel algorithms: examples in sorting, searching, graphs, and matrices; computational complexity, polynomial complexity classes P, NP.