## Learning Outcomes

At the end of this lecture, you’ll be able to:

- Describe Selection, Insertion, and Bubble sorts at high level.
- Trace each sorting algorithm on a given sequence of data.
- Understand each sorting algorithm well enough to implement them.
- Recognize the effect of applying a particular sorting strategy on a data sequence.
- Work out the asymptotic complexity of each sorting algorithm.
- Identify the number of comparisons and swaps for each of these algorithms in the worst case, based on the data size.
- Understand the use and operation of Java’s Comparable interface.

## Lecture Plan

In this lecture, we'll cover the following lessons:

- Selection Sort: The Code
- Selection Sort: Tracing Exercise⚡
- Selection Sort: The Algorithm⚡
- Insertion Sort: The Algorithm⚡
- Bubble Sort: The Code⚡
- Bubble Sort: The Algorithm⚡
- Quadratic Sorts: Summary⚡

Lessons marked with ⚡ contain exercise/activity.