This document discusses divide-and-conquer algorithms and their time complexities. It begins with examples of finding the maximum of a set and binary search. It then presents the general steps of a divide-and-conquer algorithm and analyzes time complexity. Several algorithms are discussed including quicksort, merge sort, 2D maxima finding, closest pair problem, convex hull problem, and matrix multiplication. Strategies like divide, conquer, and merge are used to solve problems recursively in fewer comparisons than brute force methods. Many algorithms have a time complexity of O(n log n).