main page  —  CS 566 Efficient Algorithms

Unit 4: Efficient Sorting

This is an archived version of this module from Winter 2024-25.

This unit covers

  • mergesort and quicksort
  • counting sort
  • comparions lower bound for sorting
  • adaptive sorting

Learning outcomes

  1. Know principles and implementation of mergesort and quicksort.
  2. Know properties and performance characteristics of mergesort and quicksort.
  3. Know the comparison model and understand the corresponding lower bound.
  4. Understand counting sort and how it circumvents the comparison lower bound.
  5. Know ways how to exploit presorted inputs.

Material

Part I – The Basics

Part II – Exploiting presortedness

  • Video 4-5 (2024-11-05): §4.5 Adaptive sorting & Peeksort

  • Video 4-6 (2024-11-11): §4.6 Python’s list sort & Powersort


Further reading and sources

More elementary sorting methods are described in detail in Algorithms 4th ed.

The exposition of adaptive sorting is my own and based on several sources:


Unit 3  ⋅  Syllabus  ⋅  Unit 5