A type of sorting algorithm which can only read the list elements through a single abstract comparison operation (often a "less than" operator) that determines which of two elements should occur first in the final sorted list